[MODIFIED] Modificaciones para captura de configuración de proyecto
- Se agregó una validación nueva(13) para lista de elementos - Se cambiaron los nombres de las funciones de consola - Se hicieron correcciones y mejoras a las funciones de consola con dialog
This commit is contained in:
		
							parent
							
								
									117cf0c623
								
							
						
					
					
						commit
						a5961e1aaa
					
				
					 6 changed files with 144 additions and 28 deletions
				
			
		|  | @ -31,6 +31,10 @@ BIN_LANG=${LANG:0:2} | ||||||
| source $BIN_HOME/$BIN_LIBS/base.lib | source $BIN_HOME/$BIN_LIBS/base.lib | ||||||
| #baselib_test | #baselib_test | ||||||
| 
 | 
 | ||||||
|  | # LOAD CONSOLE BASH LIBRARY | ||||||
|  | source $BIN_HOME/$BIN_LIBS/console.lib | ||||||
|  | #consolelib_test | ||||||
|  | 
 | ||||||
| # LOAD ODOO BASH LIBRARY | # LOAD ODOO BASH LIBRARY | ||||||
| source $BIN_HOME/$BIN_LIBS/odoo.lib | source $BIN_HOME/$BIN_LIBS/odoo.lib | ||||||
| #odoolib_test | #odoolib_test | ||||||
|  | @ -43,16 +47,38 @@ load_messages $BIN_HOME $BIN_MESG $BIN_LANG "odoo" | ||||||
| 
 | 
 | ||||||
| # Function to display help message | # Function to display help message | ||||||
| function help() { | function help() { | ||||||
|     echo "$odmsg_003_1 $0 $odmsg_003_2" |     echo "$odmsg_003_1 $0 $odmsg_019_2" | ||||||
|     echo "$odmsg_004" |     echo "$odmsg_004" | ||||||
|     echo "$odmsg_005" |     echo "$odmsg_005" | ||||||
|     echo "$odmsg_006" |     echo "$odmsg_006" | ||||||
|     echo "$odmsg_007" |     echo "$odmsg_007" | ||||||
|     echo "$odmsg_015 $ODOO_DEF_VERS" |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| # Display Headers | function odoo_configure_form() { | ||||||
| display_text_header $BIN_HOME "${odmsg_000} ${odmsg_001}" | 
 | ||||||
|  |     declare -a response c_lbl, c_hlp, c_mod, c_opt, c_val, c_dat | ||||||
|  | 
 | ||||||
|  |     # Define gpg capture form | ||||||
|  |     c_lbl[0]="${odlbl_000}" | ||||||
|  |     c_hlp[0]="${odhlp_000}" | ||||||
|  |     c_mod[0]=1 | ||||||
|  |     c_opt[0]=0 | ||||||
|  |     c_val[0]=013 | ||||||
|  |     c_dat[0]="${ODOO_CFG_VERS[@]}" | ||||||
|  |     c_end=1 | ||||||
|  | 
 | ||||||
|  |     dialog_form | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | ########### MAIN PROGRAM ########### | ||||||
|  | 
 | ||||||
|  | # Check if dialog is not installed, exited! | ||||||
|  | if ! command -v dialog >/dev/null 2>&1 | ||||||
|  | then | ||||||
|  |     display_text_header $BIN_HOME "${odmsg_000} ${odmsg_101}" | ||||||
|  |     echo "${head_001}" | ||||||
|  |     exit 200 | ||||||
|  | fi | ||||||
| 
 | 
 | ||||||
| # Check for arguments option | # Check for arguments option | ||||||
| help=false | help=false | ||||||
|  | @ -67,15 +93,6 @@ while [[ $# -gt 0 ]]; do | ||||||
|         version=true |         version=true | ||||||
|         shift |         shift | ||||||
|         ;; |         ;; | ||||||
|     --odoo) |  | ||||||
|         if [[ -n $2 ]]; then |  | ||||||
|           ODOO_VERS="$2" |  | ||||||
|           shift 2 |  | ||||||
|         else |  | ||||||
|           echo "$odmsg_013" |  | ||||||
|           exit 1 |  | ||||||
|         fi |  | ||||||
|         ;; |  | ||||||
|     *) |     *) | ||||||
|         if [[ -z $PROJECT_NAME ]]; then |         if [[ -z $PROJECT_NAME ]]; then | ||||||
|           PROJECT_NAME="$1" |           PROJECT_NAME="$1" | ||||||
|  | @ -106,15 +123,38 @@ if [[ -z $PROJECT_NAME ]]; then | ||||||
|   exit 1 |   exit 1 | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| # Set odoo default version, if odoo version is not defined | # Set program title | ||||||
| if [[ ! -n $ODOO_VERS ]]; then | title="$(cat < $BIN_HOME/config/project.head) ${odmsg_000}" | ||||||
|   ODOO_VERS=$ODOO_DEF_VERS | apps_title="${odmsg_101} ${PROJECT_NAME^^}" | ||||||
|  | 
 | ||||||
|  | # Check if os is valid! | ||||||
|  | get_osname | ||||||
|  | if [ "${os_name}" == "${head_unknow}" ] | ||||||
|  | then | ||||||
|  |     dialog_error_box "${head_error}" "${head_os_error}" | ||||||
|  |     exit 3 | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| # Check if odoo version is supported | # Configure odoo devs environment for project | ||||||
| odoo_verscheck $ODOO_VERS | dialog_yesno "${odmsg_201} ${PROJECT_NAME}?" | ||||||
| if [ $? -ne 0 ]; then | case ${result} in | ||||||
|   echo "[-] $odmsg_014_1 $ODOO_VERS $odmsg_014_2" |   0) | ||||||
|   exit 2 |     odoo_configure_form | ||||||
| fi |     case $? in | ||||||
|  |       0) | ||||||
|  |         clear | ||||||
|  |         exit 0 | ||||||
|  |         ;; | ||||||
|  |       *) | ||||||
|  |         dialog_error_box "${head_info}" "${head_op_error}" | ||||||
|  |         ;; | ||||||
|  |     esac | ||||||
|  |     ;; | ||||||
|  |   *) | ||||||
|  |     dialog_error_box "${head_info}" "${head_op_error}" | ||||||
|  |     ;; | ||||||
|  | esac | ||||||
| 
 | 
 | ||||||
|  | # Clear console and exit | ||||||
|  | clear | ||||||
|  | exit 0 | ||||||
|  |  | ||||||
|  | @ -206,6 +206,34 @@ function git_clone_pull() { | ||||||
|   fi |   fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | # Check for valid os system | ||||||
|  | function get_osname() { | ||||||
|  | 
 | ||||||
|  |   if [ "$(uname)" == "Darwin" ]; then | ||||||
|  |     # En macOS, instalamos o actualizamos a través de Homebrew | ||||||
|  |     os_name=$(sw_vers -productVersion | awk -F '.' '{print "macOS " $1 "." $2}') | ||||||
|  |   elif [ -f /etc/debian_version ] || [ -f /etc/os-release ]; then | ||||||
|  |     # En sistemas Debian y derivados, instalamos o actualizamos a través de apt | ||||||
|  |     os_name=$(grep "^ID_LIKE=" /etc/os-release | cut -d= -f2) | ||||||
|  |     if grep -qi "${head_ubuntu}" /etc/os-release | ||||||
|  |     then | ||||||
|  |       os_name="${head_ubuntu}" | ||||||
|  |     fi | ||||||
|  |   elif [ -f /etc/redhat-release ]; then | ||||||
|  |     # En sistemas Red Hat, instalamos o actualizamos a través de dnf | ||||||
|  |     os_name=$(awk '{print $1}' /etc/redhat-release) | ||||||
|  |   elif [ -f /etc/arch-release ]; then | ||||||
|  |     # En Arch Linux, instalamos o actualizamos a través de pacman | ||||||
|  |     os_name=$(grep '^NAME=' /etc/os-release | awk -F '"' '{print $2}') | ||||||
|  |   elif [ -f /etc/rc.conf ]; then | ||||||
|  |     # En BSD, instalamos o actualizamos a través de pkg | ||||||
|  |     os_name=$(awk '{print $2}' /etc/version | awk -F '-' '{print $1}') | ||||||
|  |   else | ||||||
|  |     os_name="${head_unknow}" | ||||||
|  |   fi | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
| function check_server() { | function check_server() { | ||||||
| 
 | 
 | ||||||
|   local SERVER=$1 |   local SERVER=$1 | ||||||
|  |  | ||||||
|  | @ -23,6 +23,11 @@ CROWS=8 | ||||||
| CX=4 | CX=4 | ||||||
| CY=2 | CY=2 | ||||||
| 
 | 
 | ||||||
|  | # Test console library | ||||||
|  | function consolelib_test() { | ||||||
|  |   echo "Console Library loaded!" | ||||||
|  | } | ||||||
|  | 
 | ||||||
| # Dialog Yes/No Question | # Dialog Yes/No Question | ||||||
| function dialog_yesno() { | function dialog_yesno() { | ||||||
| 
 | 
 | ||||||
|  | @ -165,6 +170,8 @@ function dialog_validate_input() { | ||||||
| 
 | 
 | ||||||
|   local value="$2" |   local value="$2" | ||||||
|   local label="$3" |   local label="$3" | ||||||
|  |   local valid_data="$4" | ||||||
|  | 
 | ||||||
|   local email_regex='^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$' |   local email_regex='^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$' | ||||||
|   local gpg_duration_regex="^[0-9]+([dmy])?$" |   local gpg_duration_regex="^[0-9]+([dmy])?$" | ||||||
|   local domain_regex="^(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9]+[a-zA-Z0-9-]*[a-zA-Z0-9]+))(\.([a-zA-Z]{2,})){1,}$" |   local domain_regex="^(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9]+[a-zA-Z0-9-]*[a-zA-Z0-9]+))(\.([a-zA-Z]{2,})){1,}$" | ||||||
|  | @ -209,6 +216,17 @@ function dialog_validate_input() { | ||||||
|             return 1 |             return 1 | ||||||
|           fi |           fi | ||||||
|           ;; |           ;; | ||||||
|  |         013) | ||||||
|  |           for item in "${valid_data}" | ||||||
|  |           do | ||||||
|  |             if [[ "$item" == "$value" ]] | ||||||
|  |             then | ||||||
|  |               return 0 | ||||||
|  |             fi | ||||||
|  |           done | ||||||
|  |           dialog_error_box "${head_error}" "${vldt_013}" | ||||||
|  |           return 1 | ||||||
|  |           ;; | ||||||
|       esac |       esac | ||||||
|     done |     done | ||||||
|   fi |   fi | ||||||
|  | @ -230,7 +248,7 @@ function dialog_form() { | ||||||
|         dialog_input_box "[${control}] ${c_lbl[control]}" "${c_hlp[control]}" |         dialog_input_box "[${control}] ${c_lbl[control]}" "${c_hlp[control]}" | ||||||
|         if [ ${codex} -eq 0 ] |         if [ ${codex} -eq 0 ] | ||||||
|         then |         then | ||||||
|           dialog_validate_input "${c_val[control]}" "${value}" "${c_lbl[control]}" |           dialog_validate_input "${c_val[control]}" "${value}" "${c_lbl[control]}" "${c_dat[control]}" | ||||||
|           if [ $? -eq 0 ] |           if [ $? -eq 0 ] | ||||||
|           then |           then | ||||||
|             response[control]="${value}" |             response[control]="${value}" | ||||||
|  | @ -345,4 +363,6 @@ function dialog_form() { | ||||||
|     esac |     esac | ||||||
|   done |   done | ||||||
| 
 | 
 | ||||||
|  |   return 0 | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -33,7 +33,7 @@ ODOO_LOG=odoo.log | ||||||
| 
 | 
 | ||||||
| ODOO_DEF_VERS="18" | ODOO_DEF_VERS="18" | ||||||
| ODOO_DEF_BRCH=devs | ODOO_DEF_BRCH=devs | ||||||
| ODOO_CFG_VARS=("18") | ODOO_CFG_VERS=("18") | ||||||
| 
 | 
 | ||||||
| ODOO_PKG_BASE=base | ODOO_PKG_BASE=base | ||||||
| ODOO_PKG_DEVS=devs | ODOO_PKG_DEVS=devs | ||||||
|  | @ -58,7 +58,7 @@ function odoo_verscheck() { | ||||||
| 
 | 
 | ||||||
|   local value=$1 |   local value=$1 | ||||||
| 
 | 
 | ||||||
|   for item in "${ODOO_CFG_VARS[@]}" |   for item in "${ODOO_CFG_VERS[@]}" | ||||||
|   do |   do | ||||||
|     if [[ "$item" == "$value" ]] |     if [[ "$item" == "$value" ]] | ||||||
|     then |     then | ||||||
|  |  | ||||||
|  | @ -12,13 +12,32 @@ | ||||||
| #============================================================================== | #============================================================================== | ||||||
| 
 | 
 | ||||||
| head_000="(MRDEVOPS TOOLS)" | head_000="(MRDEVOPS TOOLS)" | ||||||
| head_001="El comando 'dialog' no está instalado. Por favor, ejecute bootstrap.sh." | head_001="El comando 'dialog' no está instalado. Por favor, ejecute bin/bootstrap.sh." | ||||||
| head_installing="Instalando" | head_installing="Instalando" | ||||||
| head_info="INFO" | head_info="INFO" | ||||||
| head_warning="ADVERTENCIA" | head_warning="ADVERTENCIA" | ||||||
| head_error="ERROR" | head_error="ERROR" | ||||||
| head_unknow="UNKNOW" | head_unknow="UNKNOW" | ||||||
| head_version="Versión" | head_version="Versión" | ||||||
|  | head_ubuntu="ubuntu" | ||||||
|  | head_confirm="(confirmar)" | ||||||
|  | head_os_error="Operación Cancelada. No se pudo determinar el sistema operativo." | ||||||
|  | head_op_error="Operación cancelada por el operador!" | ||||||
|  | head_pause="Presiona Enter para continuar..." | ||||||
|  | head_error_unknow="Operación Cancelada. Se produjo un error desconocido!" | ||||||
|  | head_fail="Fail" | ||||||
|  | head_exit="Finalizar" | ||||||
|  | head_create="Adicionar" | ||||||
|  | head_delete="Eliminar" | ||||||
|  | 
 | ||||||
|  | label_email="Correo Electrónico:" | ||||||
|  | 
 | ||||||
|  | vldt_001="no puede estar en blanco..." | ||||||
|  | vldt_002="Contraseña incorrecta! Intente nuevamente." | ||||||
|  | vldt_010="Dirección de correo electrónico es inválida!" | ||||||
|  | vldt_011="Duración de clave gpg inválida!" | ||||||
|  | vldt_012="No es un nombre de dominio DNS válido!" | ||||||
|  | vldt_013="Valor incorrecto!" | ||||||
| 
 | 
 | ||||||
| os_update="Actualizando sistema operativo " | os_update="Actualizando sistema operativo " | ||||||
| os_nofound="Sistemas operativos soportados: Ubuntu, Debian, Arch Linux, Fedora, Redhat, AlmaLinux, Rocky, Oracle Linux, FreeBSD, MacOS" | os_nofound="Sistemas operativos soportados: Ubuntu, Debian, Arch Linux, Fedora, Redhat, AlmaLinux, Rocky, Oracle Linux, FreeBSD, MacOS" | ||||||
|  |  | ||||||
|  | @ -14,10 +14,11 @@ | ||||||
| odmsg_000="(ODOO TOOLS)" | odmsg_000="(ODOO TOOLS)" | ||||||
| odmsg_001="- INICIALIZACIÓN" | odmsg_001="- INICIALIZACIÓN" | ||||||
| odmsg_100="- INSTALAR" | odmsg_100="- INSTALAR" | ||||||
|  | odmsg_101="CONFIGURE PROYECTO" | ||||||
| odmsg_002="Ambiente de desarrollo Odoo no instalado!" | odmsg_002="Ambiente de desarrollo Odoo no instalado!" | ||||||
| odmsg_003_1="Uso:" | odmsg_003_1="Uso:" | ||||||
| odmsg_003_2="<project path> [--help] [--version] [--odoo <n>]" | odmsg_003_2="<project> [--help] [--version] [--odoo <n>]" | ||||||
| odmsg_004="Descripción: Este script requiere <project path> como argumento obligatorio." | odmsg_004="Descripción: Este script requiere <project> como argumento obligatorio." | ||||||
| odmsg_005="Opciones:" | odmsg_005="Opciones:" | ||||||
| odmsg_006="  --help     Muestra este mensaje de ayuda." | odmsg_006="  --help     Muestra este mensaje de ayuda." | ||||||
| odmsg_007="  --version  Muestra la versión del script." | odmsg_007="  --version  Muestra la versión del script." | ||||||
|  | @ -36,3 +37,11 @@ odmsg_015="  --odoo <n> Identifica la versión de odoo a configurar. Default:" | ||||||
| odmsg_016="Odoo Pack no instalado!" | odmsg_016="Odoo Pack no instalado!" | ||||||
| odmsg_017_2="[--help] [--version] [--odoo <n>]" | odmsg_017_2="[--help] [--version] [--odoo <n>]" | ||||||
| odmsg_018="Descripción: Este script instala o actualiza el pack" | odmsg_018="Descripción: Este script instala o actualiza el pack" | ||||||
|  | odmsg_019_2="<project> [--help] [--version]" | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | odmsg_201="Desea configurar ambiente de desarrollo para el proyecto" | ||||||
|  | 
 | ||||||
|  | # Input: Versión Odoo | ||||||
|  | odlbl_000="Versión Odoo" | ||||||
|  | odhlp_000="Especificar la versión de odoo en uso" | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue