160 lines
3.9 KiB
Bash
160 lines
3.9 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}
|
|
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_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
|
|
git clone "${ODOO_REPO_SSH}" "${ODOODEVS_PATH}"
|
|
if [ $? -ne 0 ]; then
|
|
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
|
|
clear
|
|
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
|
|
|
|
}
|