diff --git a/bin/lib/base.lib b/bin/lib/base.lib index d3d8f0f..edeac31 100644 --- a/bin/lib/base.lib +++ b/bin/lib/base.lib @@ -21,6 +21,7 @@ # Test library function baselib_test() { echo "Base Library loaded!" + exit 1 } # Load messages @@ -45,7 +46,7 @@ function display_text_header() { clear echo "$(cat < $PROJECT/config/project.head) $tittle" - echo "==========================================================" + echo "============================================================" } # Verify if your program or command is installed @@ -135,3 +136,84 @@ function container_mode() { return 255 } + +# Git init repository +function git_init() { + + local REPO_PATH=$1 + local BRANCH=$2 + + cd $REPO_PATH + if [ $? -eq 0 ]; then + git init -b $BRANCH + return $? + else + return 255 + fi + +} + +# Git add tracked files to repository +function git_add_full() { + + local REPO_PATH=$1 + + cd $REPO_PATH + if [ $? -eq 0 ]; then + git add . + return $? + else + return 255 + fi + +} + +# Git add tracked files to repository +function git_commit_first() { + + local REPO_PATH=$1 + + cd $REPO_PATH + if [ $? -eq 0 ]; then + git commit -m "$git_first_commited" + return $? + else + return 255 + fi + +} + +# Git clone repository +function git_clone_pull() { + + local REPO_PATH=$1 + local REPO_REMOTE=$2 + local APPS=$3 + + if [ ! -d $REPO_PATH/$APPS ] + then + cd $REPO_PATH + if [ $? -eq 0 ]; then + git clone $REPO_REMOTE $APPS + return $? + else + return 255 + fi + else + cd $REPO_PATH/$APPS + if [ $? -eq 0 ]; then + git pull + return $? + else + return 255 + fi + fi +} + +function check_server() { + + local SERVER=$1 + + ping -c 1 $SERVER > /dev/null 2>&1 && return 0 || return 1 + +} diff --git a/bin/lib/odoo.lib b/bin/lib/odoo.lib index 5520c50..f2bf287 100644 --- a/bin/lib/odoo.lib +++ b/bin/lib/odoo.lib @@ -32,17 +32,22 @@ ODOO_SET=odoo.conf ODOO_LOG=odoo.log ODOO_DEF_VERS="18" +ODOO_DEF_BRCH=devs ODOO_CFG_VARS=("18") ODOO_PKG_BASE=base ODOO_PKG_DEVS=devs ODOO_PKG_INAR=ia +ODOO_PKG_EXTR=extras ODOO_CFG_PREF=odoo.v +ODOO_CFG_GITI=odoo.gitignore ODOO_CFG_BASE=odoo.base.conf ODOO_CFG_SAAS=odoo.saas.conf ODOO_CFG_PACK=packs +ODOO_GIT_EXTRAS="git@git.rosero.one:OPENTECH/odoo%s_%s.git" + # Test odoo library function odoolib_test() { echo "Odoo Library loaded!" diff --git a/bin/msg/head.es b/bin/msg/head.es index 8ce7427..13b1df2 100644 --- a/bin/msg/head.es +++ b/bin/msg/head.es @@ -25,3 +25,11 @@ os_nofound="Sistemas operativos soportados: Ubuntu, Debian, Arch Linux, Fedora, pkg_install_begin="Instalando paquete(s):" pkg_install_success="Instalación satisfactoria de paquete(s):" + +git_initialized="Repositorio git inicializado!" +git_notinitialized="Repositorio git no fue inicializado!" +git_setbranch="Rama git ha sido creada" +git_gitignored="Archivo .gitignore generado a partir de plantilla" +git_add_files="Archivos base del proyecto agregados!" +git_first_commited="[INIT] Proyecto inicializado" +git_end_commited="Todos los cambios al repositorio nuevo han sido aplicados!" diff --git a/bin/msg/odoo.es b/bin/msg/odoo.es index c01d123..c855d21 100644 --- a/bin/msg/odoo.es +++ b/bin/msg/odoo.es @@ -13,10 +13,11 @@ odmsg_000="(ODOO TOOLS)" odmsg_001="- INICIALIZACIÓN" +odmsg_100="- INSTALAR" odmsg_002="Ambiente de desarrollo Odoo no instalado!" odmsg_003_1="Uso:" odmsg_003_2=" [--help] [--version] [--odoo ]" -odmsg_004="Descripción: Este script requiere un argumento obligatorio." +odmsg_004="Descripción: Este script requiere como argumento obligatorio." odmsg_005="Opciones:" odmsg_006=" --help Muestra este mensaje de ayuda." odmsg_007=" --version Muestra la versión del script." @@ -32,3 +33,6 @@ odmsg_013="Error: Se requiere un argumento para --odoo." odmsg_014_1="Versión de Odoo" odmsg_014_2="no es soportada!" odmsg_015=" --odoo Identifica la versión de odoo a configurar. Default:" +odmsg_016="Odoo Pack no instalado!" +odmsg_017_2="[--help] [--version] [--odoo ]" +odmsg_018="Descripción: Este script instala o actualiza el pack" diff --git a/bin/pack_extras.sh b/bin/pack_extras.sh new file mode 100755 index 0000000..127c9c0 --- /dev/null +++ b/bin/pack_extras.sh @@ -0,0 +1,118 @@ +#!/bin/bash +# +# pack_extras.sh +# Modified: 2024/12/02 10:27:00 +# Derechos de Autor (C) [2024] [Mauro Rosero P. ] +# +# 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 . + +DEVSPATH=developers +DEVSTEAM=odoo +BIN_HOME=$HOME/$DEVSPATH/$DEVSTEAM +BIN_MESG=bin/msg +BIN_LIBS=bin/lib +VERSION="$(cat $BIN_HOME/config/project.version)" + +# CHECK SHELL LANGUAGE +BIN_LANG=${LANG:0:2} + +# LOAD BASE BASH LIBRARY +source $BIN_HOME/$BIN_LIBS/base.lib +#baselib_test + +# LOAD ODOO BASH LIBRARY +source $BIN_HOME/$BIN_LIBS/odoo.lib +#odoolib_test + +# Load head messages +load_messages $BIN_HOME $BIN_MESG $BIN_LANG "head" + +# Load odoo messages +load_messages $BIN_HOME $BIN_MESG $BIN_LANG "odoo" + +# Function to display help message +function help() { + echo "$odmsg_003_1 $0 $odmsg_017_2" + echo "$odmsg_018 $DEVSTEAM $ODOO_PKG_EXTR" + echo "$odmsg_005" + echo "$odmsg_006" + echo "$odmsg_007" + echo "$odmsg_015 $ODOO_DEF_VERS" +} + +# Display Headers +display_text_header $BIN_HOME "${odmsg_000} ${odmsg_100} ${ODOO_PKG_EXTR^^}" + +# Check for arguments option +help=false +version=false +while [[ $# -gt 0 ]]; do + case $1 in + --help) + help=true + shift + ;; + --version) + version=true + shift + ;; + --odoo) + if [[ -n $2 ]]; then + ODOO_VERS="$2" + shift 2 + else + echo "$odmsg_013" + exit 1 + fi + ;; + esac +done + +# Check to show help +if $help; then + help + exit 0 +fi + +# Check to show command version +if $version; then + echo "$head_version $VERSION" + exit 0 +fi + +# Set odoo default version, if odoo version is not defined +if [[ ! -n $ODOO_VERS ]]; then + ODOO_VERS=$ODOO_DEF_VERS +fi + +# Check if odoo version is supported +odoo_verscheck $ODOO_VERS +if [ $? -ne 0 ]; then + echo "[-] $odmsg_014_1 $ODOO_VERS $odmsg_014_2" + exit 2 +fi + +# Get clone/pull odoo extras pack_extras +if [ -d $BIN_HOME ]; then + REPO_REMOTE=$(printf "$ODOO_GIT_EXTRAS" "${ODOO_VERS}" "$ODOO_PKG_EXTR") + git_clone_pull "$BIN_HOME/$ODOO_CFG_PACK/${ODOO_CFG_PREF}${ODOO_VERS}" "$REPO_REMOTE" ${ODOO_PKG_EXTR} + if [ $? -eq 0 ]; then + echo "[x] $odmsg_012_1 ${ODOO_PKG_EXTR} v$ODOO_VERS $odmsg_012_2" + else + echo "[-] $odmsg_016" + fi +else + echo "[-] $odmsg_016" + exit 3 +fi diff --git a/bin/project.sh b/bin/project.sh index c5df026..62a5fe6 100755 --- a/bin/project.sh +++ b/bin/project.sh @@ -22,7 +22,7 @@ DEVSTEAM=odoo BIN_HOME=$HOME/$DEVSPATH/$DEVSTEAM BIN_MESG=bin/msg BIN_LIBS=bin/lib -VERSION="1.0" +VERSION="$(cat $BIN_HOME/config/project.version)" # CHECK SHELL LANGUAGE BIN_LANG=${LANG:0:2} @@ -82,7 +82,6 @@ while [[ $# -gt 0 ]]; do shift else help - echo "zzzzzzzz" exit 1 fi ;; @@ -92,7 +91,6 @@ done # Check to show help if $help; then help - echo "$help" exit 0 fi @@ -114,7 +112,7 @@ if [[ ! -n $ODOO_VERS ]]; then fi # Check if odoo version is supported -odoo_verscheck ODOO_VERS +odoo_verscheck $ODOO_VERS if [ $? -eq 0 ]; then echo "[-] $odmsg_014_1 $ODOO_VERS $odmsg_014_2" exit 2 @@ -140,3 +138,31 @@ copy_odooapps $BIN_HOME "$PROJECT_NAME" "${ODOO_VERS}" $ODOO_PKG_DEVS # Copy odoo ai apps to project copy_odooapps $BIN_HOME "$PROJECT_NAME" "${ODOO_VERS}" $ODOO_PKG_INAR + +# Initialize git repository +if [ ! -d "$BIN_HOME/$PROJECT_NAME/$ODOO_APP/.git" ] +then + result=$(git_init "$BIN_HOME/$PROJECT_NAME/$ODOO_APP" $ODOO_DEF_BRCH) + if [ $? -eq 0 ]; then + echo "[x] $result" + echo "[x] $git_setbranch: $ODOO_DEF_BRCH" + cp -f $BIN_HOME/$ODOO_CFG/$ODOO_CFG_GITI $BIN_HOME/$PROJECT_NAME/$ODOO_APP/ + echo "[x] $git_gitignored $ODOO_CFG_GITI" + else + echo echo "[-] $git_notinitialized" + fi + + result=$(git_add_full "$BIN_HOME/$PROJECT_NAME/$ODOO_APP") + if [ $? -eq 0 ]; then + echo "[x] $git_add_files" + else + echo "$result" + fi + + result=$(git_commit_first "$BIN_HOME/$PROJECT_NAME/$ODOO_APP") + if [ $? -eq 0 ]; then + echo "[x] $git_end_commited" + else + echo "$result" + fi +fi diff --git a/config/odoo.gitignore b/config/odoo.gitignore new file mode 100644 index 0000000..ea6b964 --- /dev/null +++ b/config/odoo.gitignore @@ -0,0 +1,45 @@ +# Odoo .gitignore +*.pyc +*.pyo +*.pyd +__pycache__/ +*.log +*.pot +*.pyc +*.egg-info/ +*.egg + +# Archivos de configuración locales +*.local.cfg +*.env + +# Directorios de Odoo +addons/.local/ +addons/.eggs/ +addons/__pycache__/ +odoo-bin + +# Archivos de base de datos +*.db +*.dump + +# Archivos de caché y temporales +tmp/ +temp/ +.cache/ +.cache/ + +# Archivos de compilación de assets +static/lib/ +static/src/ +static/.cache/ + +# Archivos de pruebas y cobertura +.coverage +nosetests.xml +coverage.xml +*.cover + +# Entorno virtual (si se utiliza) +venv/ +env/ diff --git a/config/project.version b/config/project.version new file mode 100644 index 0000000..95fce8c --- /dev/null +++ b/config/project.version @@ -0,0 +1 @@ +0.98.0