devs/bin/lib/odoo.lib

164 lines
4.2 KiB
Bash

#!/bin/bash
#
# Library: odoo.lib
# Description: Odoo Developers Tools Library
# Modified: 2024/12/09 08:20:00
# Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>]
#
# Este programa es software libre: usted puede redistribuirlo y/o modificarlo
# bajo los términos de la Licencia Pública Affero General de GNU tal como
# lo publica la Free Software Foundation, ya sea la versión 3 de la licencia,
# o (a su elección) cualquier versión posterior.
#
# Este programa se distribuye con la esperanza de que sea útil,
# pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de
# COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la
# Licencia Pública Affero General de GNU para obtener más detalles.
#
# Debería haber recibido una copia de la Licencia Pública Affero General
# junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>.
ODOO_DEVS=${ODOODEVS:=odoo}
ODOO_CFGS=${ODOO_CFGS:=configs}
ODOODEVS_PATH="${HOME}/${DEVSPATH:=devs}/${ODOO_DEVS}"
ODOO_REPO_WEB="$(cat ${HOME}/${DEVSPATH:=devs}/bin/config/odoo.repo.2)"
ODOO_REPO_SSH="$(cat ${HOME}/${DEVSPATH:=devs}/bin/config/odoo.repo.1)"
ODOO_REPO_ALT=""
ODOO_REPO_PKG=packs.repos
ODOO_PACK_DEV=packs
ODOO_VERSION="$(cat < ${ODOODEVS_PATH}/${ODOO_CFGS}/odoo.version)"
ODOO_CFG_VERS=("18")
# Test library
function devslib_test() {
echo "Developers Library loaded!"
exit 1
}
function odoo_developers() {
clear
if [ -d "${ODOODEVS_PATH}" ]; then
return 1
else
if [ ! -d "${ODOODEVS_PATH}/.git" ]; then
display_text_header "${head_000} ${odmsg_000}" "${odmsg_113} ${ODOO_REPO_SSH}"
git clone "${ODOO_REPO_SSH}" "${ODOODEVS_PATH}"
if [ $? -ne 0 ]; then
display_text_header "${head_000} ${odmsg_000}" "${odmsg_114} ${ODOO_REPO_ALT}"
git clone "${ODOO_REPO_ALT}" "${ODOODEVS_PATH}"
if [ $? -ne 0 ]; then
return 2
fi
fi
else
cd "${ODOODEVS_PATH}"
git pull
if [ $? -ne 0 ]; then
return 3
fi
fi
fi
if [ ! -d "${ODOODEVS_PATH}/${ODOO_PACK_DEV}" ]; then
mkdir "${ODOODEVS_PATH}/${ODOO_PACK_DEV}"
fi
return 0
}
function odoo_check_pack() {
local PACK_NAME=$1
local PACK_LIST=()
if [ -d "${ODOODEVS_PATH}/${ODOO_PACK_DEV}" ]; then
return 1
else
if [ ! -f "${ODOODEVS_PATH}/${ODOO_PACK_DEV}/${ODOO_REPO_PKG}" ]; then
return 2
else
while IFS='|' read -r f1 _; do
PACK_LIST+=("${f1}")
done < "${ODOODEVS_PATH}/${ODOO_PACK_DEV}/${ODOO_REPO_PKG}"
for f1 in "${PACK_LIST[@]}"; do
if [ "${f1}" == "${PACK_NAME}" ]; then
return 0
fi
done
fi
fi
return 3
}
function odoo_set_pack() {
local PACK_NAME=$1
local PACK_LIST=()
if [ ! -d "${ODOODEVS_PATH}/${ODOO_PACK_DEV}" ]; then
return 1
else
if [ ! -f "${ODOODEVS_PATH}/${ODOO_PACK_DEV}/${ODOO_REPO_PKG}" ]; then
return 2
else
while IFS='|' read -r f1 f2 f3 f4; do
if [ "${f1}" == "${PACK_NAME}" ]; then
if [ -d "${ODOODEVS_PATH}/${ODOO_PACK_DEV}/${PACK_NAME}" ]; then
if [ -d "${ODOODEVS_PATH}/${ODOO_PACK_DEV}/${PACK_NAME}/.git" ]; then
return 3
else
return 4
fi
else
display_text_header "${head_000} ${odmsg_000}" "${odmsg_112} ${PACK_NAME}"
git clone "${f3}" "${ODOODEVS_PATH}/${ODOO_PACK_DEV}/${PACK_NAME}" -b "${f4}"
if [ $? -ne 0 ]; then
return 5
fi
return 0
fi
fi
done < "${ODOODEVS_PATH}/${ODOO_PACK_DEV}/${ODOO_REPO_PKG}"
fi
fi
return 6
}
# Check for odoo version supported
function odoo_verscheck() {
local value=$1
for item in "${ODOO_CFG_VERS[@]}"
do
if [[ "$item" == "$value" ]]
then
return 0
fi
done
return 1
}
# Create odoo new project structured path
function odoo_new_project() {
local ODOO_PATH=$1
local ODOO_PROJ=$2
if [[ ! -d "${ODOO_PATH}" ]]
then
echo "${odmsg_002}"
return 1
else
if [[ ! -d "${ODOO_PATH}/${ODOO_PROJ}" ]]
then
mkdir -p $ODOO_PATH/$ODOO_PROJ/{$DOCKER_BUILD,$ODOO_APP,$ODOO_DOC,$ODOO_ETC,$ODOO_WEB}
if [ $? -eq 0 ]
then
echo "[x] $odmsg_008_1 $ODOO_PROJ $odmsg_008_2"
fi
fi
fi
}