[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