- Reordena los mensajes en odoo.es para mantener una secuencia lógica de números - Mejora el manejo de variables en el subshell de la barra de progreso para evitar pérdida de valor - Implementa un método más robusto para actualizar la descripción en README.md existentes - Añade respaldo automático de README.md antes de modificarlo - Mejora manejo de errores en la generación de archivos 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
165 lines
4 KiB
Bash
Executable file
165 lines
4 KiB
Bash
Executable file
#\!/bin/bash
|
|
#
|
|
# odoo_set.sh
|
|
# Modified: 2025/03/12 15:00:00
|
|
# Derechos de Autor (C) [2025] [Mauro Rosero P. <mauro@rosero.one> (mauro.rosero@gmail.com)]
|
|
#
|
|
# 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/>.
|
|
|
|
# Script para crear proyectos Odoo
|
|
# Uso:
|
|
# ./odoo_set.sh
|
|
|
|
DEVSPATH=devs
|
|
BIN_HOME=$HOME/$DEVSPATH
|
|
BIN_MESG=bin/msg
|
|
BIN_LIBS=bin/lib
|
|
BIN_CFGS=bin/config
|
|
VERSION=1.0.0
|
|
|
|
# CHECK SHELL LANGUAGE
|
|
BIN_LANG=${LANG:0:2}
|
|
|
|
# LOAD BASE BASH LIBRARY
|
|
source $BIN_HOME/$BIN_LIBS/base.lib
|
|
|
|
# LOAD CONSOLE BASH LIBRARY
|
|
source $BIN_HOME/$BIN_LIBS/console.lib
|
|
|
|
# LOAD ODOO BASH LIBRARY
|
|
source $BIN_HOME/$BIN_LIBS/odoo.lib
|
|
|
|
# Load head messages
|
|
load_messages $BIN_HOME $BIN_MESG $BIN_LANG "head"
|
|
|
|
# Load odoo messages
|
|
load_messages $BIN_HOME $BIN_MESG $BIN_LANG "odoo"
|
|
|
|
########### MAIN PROGRAM ###########
|
|
|
|
# Set program title
|
|
title="$head_000 $odmsg_000"
|
|
apps_title="${odmsg_102}"
|
|
|
|
# Check if dialog is not installed, exited\!
|
|
command_installed "dialog"
|
|
if [ $? -ne 0 ]
|
|
then
|
|
display_devstools_header "${odmsg_000}"
|
|
echo "${head_001}"
|
|
exit 200
|
|
fi
|
|
|
|
# Check if os is valid\!
|
|
get_osname
|
|
if [ "${os_name}" == "${head_unknow}" ]
|
|
then
|
|
dialog_error_box "${head_error}" "${head_os_error}"
|
|
exit 3
|
|
fi
|
|
|
|
# Obtener el nombre de carpeta de proyectos desde projects.dat
|
|
if [ -f "$BIN_HOME/$BIN_CFGS/projects.dat" ]; then
|
|
PROJECTS_FOLDER=$(cat "$BIN_HOME/$BIN_CFGS/projects.dat" | head -n 1)
|
|
else
|
|
dialog_error_box "${head_error}" "${odmsg_112}"
|
|
exit 4
|
|
fi
|
|
|
|
# Solicitar nombre del proyecto Odoo
|
|
clear
|
|
dialog_input_box "${odmsg_105}" "${odmsg_106}" ""
|
|
|
|
if [ $? -ne 0 ]; then
|
|
dialog_error_box "${head_error}" "${head_op_error}"
|
|
exit 1
|
|
fi
|
|
|
|
# Validar que el nombre no esté vacío
|
|
if [ -z "$value" ]; then
|
|
dialog_error_box "${head_error}" "${odmsg_107}"
|
|
exit 2
|
|
fi
|
|
|
|
PROJECT_NAME="$value"
|
|
|
|
# Solicitar descripción del proyecto Odoo
|
|
clear
|
|
dialog_input_box "${odmsg_117}" "" ""
|
|
|
|
if [ $? -ne 0 ]; then
|
|
dialog_error_box "${head_error}" "${head_op_error}"
|
|
exit 1
|
|
fi
|
|
|
|
PROJECT_DESCRIPTION="$value"
|
|
# Si no se proporciona descripción, usar un texto predeterminado
|
|
if [ -z "$PROJECT_DESCRIPTION" ]; then
|
|
PROJECT_DESCRIPTION="Este es un proyecto Odoo para gestionar procesos de negocio."
|
|
fi
|
|
|
|
# Inicializar la variable result
|
|
result=0
|
|
TEMP_FILE="/tmp/odoo_set_result.$$"
|
|
|
|
# Mostrar progreso de creación
|
|
(
|
|
echo 0; sleep 1
|
|
echo 20; echo "# ${odmsg_111}"
|
|
|
|
# Crear el proyecto Odoo
|
|
odoo_create_project "$PROJECT_NAME" "$PROJECTS_FOLDER" "$PROJECT_DESCRIPTION"
|
|
result=$?
|
|
|
|
# Guardar el resultado en un archivo temporal para recuperarlo después
|
|
echo $result > "$TEMP_FILE"
|
|
|
|
echo 80;
|
|
# Mensaje basado en el resultado
|
|
if [ $result -eq 0 ]; then
|
|
echo "# ${odmsg_115}"
|
|
elif [ $result -eq 1 ]; then
|
|
echo "# ${odmsg_110}"
|
|
else
|
|
echo "# ${odmsg_109}"
|
|
fi
|
|
sleep 1
|
|
|
|
# Finalizar
|
|
echo 100
|
|
sleep 1
|
|
) | dialog --backtitle "${title}" --title "${apps_title}" --gauge "" 10 70 0
|
|
|
|
# Recuperar el resultado
|
|
result=0 # Valor predeterminado en caso de error
|
|
if [ -f "$TEMP_FILE" ]; then
|
|
result=$(cat "$TEMP_FILE")
|
|
rm -f "$TEMP_FILE"
|
|
fi
|
|
|
|
case $result in
|
|
0)
|
|
dialog_error_box "${head_info}" "${odmsg_108} $HOME/$DEVSPATH/$PROJECTS_FOLDER/$PROJECT_NAME\n\n${odmsg_116}"
|
|
;;
|
|
1)
|
|
dialog_error_box "${head_warning}" "${odmsg_110}"
|
|
;;
|
|
2|3)
|
|
dialog_error_box "${head_error}" "${odmsg_109}"
|
|
;;
|
|
esac
|
|
|
|
# End Main Program
|
|
clear
|
|
exit 0
|