devs/bin/odoo_set.sh
Mauro Rosero P. 07cd87d386
[IMPROVED] Mejorar visibilidad del mensaje de éxito en odoo_set.sh
- Amplía la caja de diálogo de éxito para mejor visualización de la ruta del proyecto
- Aumenta altura del diálogo a 12 líneas y ancho a 80 caracteres
- Personaliza el diálogo para evitar truncamiento de rutas largas
- Mantiene consistencia con otros mensajes del sistema

🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-03-12 05:55:24 -05:00

169 lines
4.2 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)
# Mostrar mensaje de éxito con caja de diálogo ampliada para mejor visibilidad
# Bypassing dialog_error_box para tener más control sobre el tamaño
title_text="${head_info} - ${apps_title}"
message_text="${odmsg_108} $HOME/$DEVSPATH/$PROJECTS_FOLDER/$PROJECT_NAME\n\n${odmsg_116}"
dialog --backtitle "${title}" --title "${title_text}" --msgbox "\n${message_text}" 12 80
;;
1)
dialog_error_box "${head_warning}" "${odmsg_110}"
;;
2|3)
dialog_error_box "${head_error}" "${odmsg_109}"
;;
esac
# End Main Program
clear
exit 0