Compare commits
	
		
			No commits in common. "88d122ea6e4fccb2b35c38a0eeb34a5d75e2153a" and "9c7192ed0d0fa284182d5d66453da89d6e7476ac" have entirely different histories.
		
	
	
		
			88d122ea6e
			...
			9c7192ed0d
		
	
		
					 12 changed files with 17 additions and 652 deletions
				
			
		
							
								
								
									
										50
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								README.md
									
									
									
									
									
								
							|  | @ -1,5 +1,9 @@ | |||
| # AMBIENTE LOCAL PARA DESARROLLADORES (MRDEVS TOOLS) | ||||
| ## GUÍA PARA DESARROLLADORES - REV. 08/12/2024 | ||||
| ## GUÍA PARA DESARROLLADORES - REV. 30/11/2024 | ||||
| 
 | ||||
| ### REQUISITOS DE INSTALACIÓN | ||||
| 
 | ||||
| (Pendiente) | ||||
| 
 | ||||
| ### PREPARACIÓN DE AMBIENTE LOCAL PARA DESARROLLADORES | ||||
| 
 | ||||
|  | @ -10,51 +14,17 @@ En la carpeta $HOME descargue el repositorio devs (la carpeta no debe existir): | |||
|     $ cd $HOME | ||||
|     $ git clone https://git.rosero.one/mrosero/devs.git | ||||
| 
 | ||||
| **Nota:** Previamente, debe tener instalado el comando git. | ||||
| 
 | ||||
| #### Instalación de herramientas básicas y de gestión de contenedores  | ||||
| #### Instalación de herramientas para gestión de contenedores | ||||
| 
 | ||||
| A partir de este momento, la carpeta $HOME/devs será nuestra área de desarrollo donde se descargaran los diversos ambientes de desarrollo. Como primer paso instalaremos las herramientas básicas y de gestión de contenedores. Por razones de seguridad, priorizamos el uso de **podman**. | ||||
| 
 | ||||
|     $ cd $HOME/devs | ||||
|     $ bin/bootstrap.sh | ||||
| 
 | ||||
| #### Actualización de ambiente local de desarrollo | ||||
| ### GESTIÓN DE DNS LOCAL PARA DESARROLLADORES (DNSMASQ) | ||||
| 
 | ||||
| Actualice los nuevos cambios y funcionalidades del ambiente de desarrollo local raíz | ||||
| #### Habilitar permiso local para puerto 53 (DNS) | ||||
| 
 | ||||
|     $ cd $HOME/devs | ||||
|     $ bin/update.sh | ||||
| 
 | ||||
| ### ACCESO VPN A INFRAESTRUCTURA PARA DESARROLLADORES | ||||
| 
 | ||||
| #### Instalación de Cliente VPN con ambiente GUI (gráfico) | ||||
| 
 | ||||
| Para tener acceso a todos los recursos y servidores de desarrollo se requiere acceder vía VPN a la infraestructura d desarrollo. Para esto, se requiere instalar el cliente PRITUNL como sigue: | ||||
| 
 | ||||
|     $ cd $HOME/devs | ||||
|     $ bin/vpn_install.sh [--help] [--version] [--update] | ||||
| 
 | ||||
| Nota: En determinadas versiones, las actualizaciones a partir de los repositorios no es posible por lo que usamos el argumento --update. | ||||
|   | ||||
| #### Instalación de Cliente OpenVPN con ambiente TUI (texto) | ||||
| 
 | ||||
| (pendiente) | ||||
| 
 | ||||
| #### Obtener archivo de configuración para acceso VPN | ||||
| 
 | ||||
| (pendiente) | ||||
| 
 | ||||
| ### GESTIONANDO FIRMA GPG | ||||
| 
 | ||||
| #### Inicialización de configuración GPG | ||||
| 
 | ||||
| Como un requisito de nuestra plataforma, todos los desarrolladores deberán contar, por lo menos, con una clave GPG, que se utilizará para firmar o decifrar archivos, correos u otros.  Esto se hará con el uso del comando gpgp que ya debió ser instalado con la ejecución de bin/boostrap.sh. | ||||
| 
 | ||||
| En este paso estableceremos la configuración por defecto de GPG: | ||||
| 
 | ||||
|     $ cd $HOME/devs | ||||
|     $ bin/gpg_init.sh | ||||
| 
 | ||||
| #### Creación de clave GPG | ||||
| Antes de poder levantar el contenedor dnsmasq, se requiere dar permisos para poder habilitar el puerto 53: | ||||
| 
 | ||||
|     $ dns/setport53.sh | ||||
|  | @ -55,7 +55,6 @@ install() { | |||
|     local WGET_PACKAGE=wget | ||||
|     local DIALOG_PACKAGE=dialog | ||||
| 	local SOPS_PACKAGE=sops | ||||
|     local GNUPG_PACKAGE=gnupg | ||||
| 
 | ||||
| 	# Load base bash library | ||||
| 	source $BIN_PATH/$LIBRARY/base.lib | ||||
|  | @ -87,13 +86,6 @@ install() { | |||
| 	  os_pkgs_install $GIT_PACKAGE | ||||
| 	fi | ||||
| 
 | ||||
| 	# Install gnupg from OS Packages | ||||
| 	command_installed $GNUPG_PACKAGE | ||||
| 	if [ $? -ne 0 ] | ||||
| 	then | ||||
| 	  os_pkgs_install $GNUGP_PACKAGE | ||||
| 	fi | ||||
| 
 | ||||
| 	# Install dialog from OS Packages | ||||
| 	command_installed $DIALOG_PACKAGE | ||||
| 	if [ $? -ne 0 ] | ||||
|  |  | |||
|  | @ -1,6 +0,0 @@ | |||
| keyserver hkps://keyserver.ubuntu.com | ||||
| utf8-strings | ||||
| keyid-format long | ||||
| with-fingerprint | ||||
| with-sig-list | ||||
| list-options show-notations | ||||
|  | @ -1,99 +0,0 @@ | |||
| #!/bin/bash | ||||
| # | ||||
| # gpg_init.sh | ||||
| # Modified: 2024/12/09 10:27:00 | ||||
| # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] | ||||
| # | ||||
| # 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/>. | ||||
| 
 | ||||
| DEVSPATH=devs | ||||
| BIN_HOME=$HOME/$DEVSPATH | ||||
| BIN_MESG=bin/msg | ||||
| BIN_LIBS=bin/lib | ||||
| 
 | ||||
| # CHECK SHELL LANGUAGE | ||||
| BIN_LANG=${LANG:0:2} | ||||
| 
 | ||||
| # LOAD BASE BASH LIBRARY | ||||
| source $BIN_HOME/$BIN_LIBS/base.lib | ||||
| #baselib_test | ||||
| 
 | ||||
| # LOAD CONSOLE BASH LIBRARY | ||||
| source $BIN_HOME/$BIN_LIBS/console.lib | ||||
| #consolelib_test | ||||
| 
 | ||||
| # LOAD GPG BASH LIBRARY | ||||
| source $BIN_HOME/$BIN_LIBS/gpg.lib | ||||
| #gpglib_test | ||||
| 
 | ||||
| # Load head messages | ||||
| load_messages $BIN_HOME $BIN_MESG $BIN_LANG "head" | ||||
| 
 | ||||
| # Load gpg messages | ||||
| load_messages $BIN_HOME $BIN_MESG $BIN_LANG "gpg" | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ########### MAIN PROGRAM ########### | ||||
| 
 | ||||
| # Set program title | ||||
| title="$head_000 $head_002" | ||||
| apps_title="${gpmsg_000}" | ||||
| 
 | ||||
| # Check if dialog is not installed, exited! | ||||
| command_installed "dialog" | ||||
| if [ $? -ne 0 ] | ||||
| then | ||||
|   display_devstools_header "${gpmsg_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 | ||||
| 
 | ||||
| # Reset gpg configuration to template | ||||
| dialog_yesno "${gpmsg_101}" | ||||
| case ${result} in | ||||
|   0) | ||||
|     gpg_setting "$BIN_HOME" "$GPG_DEFAULT_PATH" "$GPG_DEFAULT_PATH" "$DATEBAK" | ||||
|     rc=$? | ||||
|     case $rc in | ||||
|       0) | ||||
|         dialog_error_box "${head_info}" "${gpmsg_102}" | ||||
|         clear | ||||
|         exit 0 | ||||
|         ;; | ||||
|       1) | ||||
|         dialog_error_box "${head_error}" "${gpmsg_103}" | ||||
|         clear | ||||
|         exit 0 | ||||
|         ;; | ||||
|       *) | ||||
|         dialog_error_box "${head_error}" "${head_op_error} (${rc})" | ||||
|         ;; | ||||
|     esac | ||||
|     ;; | ||||
|   *) | ||||
|     dialog_error_box "${head_error}" "${head_op_error}" | ||||
|     ;; | ||||
| esac | ||||
| 
 | ||||
| # End Main Program | ||||
| clear | ||||
							
								
								
									
										100
									
								
								bin/hexroute
									
									
									
									
									
								
							
							
						
						
									
										100
									
								
								bin/hexroute
									
									
									
									
									
								
							|  | @ -1,100 +0,0 @@ | |||
| #!/bin/bash | ||||
| ###################################################################### | ||||
| # | ||||
| #  hexroute - Convert human readable routes to dhcpd static route info | ||||
| #             for Windows(r) clients | ||||
| # | ||||
| #  Copyright (c) 2005-2015 Karl McMurdo | ||||
| # | ||||
| #  Freely distributable, but please keep header intact | ||||
| # | ||||
| #  Update: May 10, 2007 Change Max Quad to 255 | ||||
| # | ||||
| ###################################################################### | ||||
| 
 | ||||
| function split_ipaddr() { | ||||
| [ ${1:-X} = X -o "${1}" != ${1//[^.0-9]/} -o ${1:-X} = X \ | ||||
|     -o "${1//[0-9]/}" != "..." ] && return 1 | ||||
| 	local rval=0 | ||||
| 	local t | ||||
| 	local T[1] | ||||
| 	local T[2] | ||||
| 	local T[3] | ||||
| 	local T[4] | ||||
| 	T[1]=${1%%.*} | ||||
| 	T[2]=${1#*.} | ||||
| 	T[2]=${T[2]%%.*} | ||||
| 	T[3]=${1#*.*.} | ||||
| 	T[3]=${T[3]%%.*} | ||||
| 	T[4]=${1#*.*.*.} | ||||
| 	[ ${T[1]} = 0 ] && rval=1 | ||||
| 	for t in 1 2 3 4 | ||||
| 	do | ||||
| 		[ ${T[${t}]:-999} -gt 255 ] && rval=1 | ||||
| 		eval "${2}[${t}]=${T[${t}]}" | ||||
| 	done | ||||
| 	return ${rval} | ||||
| } | ||||
| USAGE='echo -e "Usage: ${0//*\/} [-v|-h] target/bits [gw] gateway [target/bits [gw] gateway ...]\n\n\tie: ${0} 172.16.0.0/16 gw 192.168.1.1\n" && exit 1' | ||||
| INFO="HexRoute 1.0    Copyright (c) 2015 Karl McMurdo | ||||
| 
 | ||||
| Converts human readable route information to a dhcpd hex string | ||||
| 
 | ||||
| 	-v	Once prints full dhcpd.conf line for route(s) | ||||
| 		Twice also prints option definiton lines for dhcpd.conf | ||||
| 	-h	Prints this message | ||||
| " | ||||
| DHCPHDR="# New Option Type for Windows Client Static Routes | ||||
| option new-static-routes code 249 = string;" | ||||
| DHCPS="option new-static-routes " | ||||
| DHCPE=";" | ||||
| BADTARG='echo -e "Invalid target network: ${1}" && exit 2' | ||||
| BADBITS='echo -e "Invalid Network bit value: ${1}" && exit 3' | ||||
| BADGW='echo -e "Invalid Gateway: ${2}" && exit 4' | ||||
| VERBOSE=false | ||||
| EXTRAVERBOSE=false | ||||
| 
 | ||||
| while [ "${1:0:1}" = "-" ] | ||||
| do | ||||
| 	if [ "${1}" = "-v" ] | ||||
| 	then | ||||
| 		$VERBOSE && EXTRAVERBOSE=true | ||||
| 		VERBOSE=true | ||||
| 	elif [ "${1}" = "-h" ] | ||||
| 	then | ||||
| 		echo "${INFO}" | ||||
| 		eval "${USAGE}" | ||||
| 	else | ||||
| 		eval "${USAGE}" | ||||
| 	fi | ||||
| 	shift | ||||
| done | ||||
| 
 | ||||
| [ ${#} -lt 2 ] && eval "${USAGE}" | ||||
| OUT="" | ||||
| 
 | ||||
| while [ ${#} -ge 2 ] | ||||
| do | ||||
| 	split_ipaddr ${1/\/*/} TARG || eval "${BADTARG}" | ||||
| 	BITS=${1/*\//} | ||||
| 	shift | ||||
| 	[ ${BITS:-X} = X -o "${BITS}" != ${BITS//[^0-9]/} ] && eval "${BADBITS}" | ||||
| 	[ ${BITS} -gt 32 -o ${BITS} -lt 1 ] && eval "${BADBITS}" | ||||
| 	[ ${1:-X} = gw ] && shift | ||||
| 	split_ipaddr ${1:-X} GW || eval "${BADGW}" | ||||
| 	shift | ||||
| 	OUT=${OUT}$( printf ":%02x:%02x" ${BITS} ${TARG[1]} ) | ||||
| 	[ ${BITS} -gt 8 ]  && OUT=${OUT}$( printf ":%02x" ${TARG[2]} ) | ||||
| 	[ ${BITS} -gt 16 ] && OUT=${OUT}$( printf ":%02x" ${TARG[3]} ) | ||||
| 	[ ${BITS} -gt 24 ] && OUT=${OUT}$( printf ":%02x" ${TARG[4]} ) | ||||
| 	OUT=${OUT}$( printf ":%02x:%02x:%02x:%02x" ${GW[@]} ) | ||||
| done | ||||
| 
 | ||||
| $EXTRAVERBOSE && echo "${DHCPHDR}" | ||||
| if $VERBOSE | ||||
| then | ||||
| 	echo ${DHCPS}${OUT/:/}${DHCPE} | ||||
| else | ||||
| 	echo ${OUT/:/} | ||||
| fi | ||||
| 
 | ||||
|  | @ -19,8 +19,6 @@ | |||
| 
 | ||||
| DEVS_NAME=config/project.head | ||||
| GIT_IGNORE=.gitignore | ||||
| DATENOW="$(date +"%Y-%m-%d %H:%M:%S")" | ||||
| DATEBAK="$(date +"%Y%m%d%H%M%S")" | ||||
| 
 | ||||
| DOCKER_LOCAL=dockerfile.local | ||||
| DOCKER_BASE=dockerfile.base | ||||
|  |  | |||
|  | @ -18,79 +18,7 @@ | |||
| # junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| 
 | ||||
| SOPS_VERSION=3.9.2 | ||||
| PRITUNL_SIGN=7568D9BB55FF9E5287D586017AE645C0CF8E292A | ||||
| PRITUNL_UPDT=1.3.4099.99 | ||||
| UBUNTU_LIST=("jammy"  "noble" "oracular") | ||||
| UBUNTU_UPDT_LIST=("noble" "oracular") | ||||
| 
 | ||||
| # Install pritunl vpn package | ||||
| function install_pritunl() { | ||||
| 
 | ||||
|   if [ "$(uname)" == "Darwin" ]; then | ||||
|       # En macOS, instalamos o actualizamos Python a través de Homebrew | ||||
|       brew install git go node | ||||
|       bash <(curl -s https://raw.githubusercontent.com/pritunl/pritunl-client-electron/master/tools/install_macos.sh) | ||||
|       return $? | ||||
|   fi | ||||
| 
 | ||||
|   OS_INFO=$(lsb_release -a 2>/dev/null) | ||||
|   if [ $? -eq 0 ]; then | ||||
|      OS_VERSION=$(echo "$OS_INFO" | grep "Codename" | awk '{print $2}' | tr -d ' ') | ||||
|   else | ||||
|     OS_INFO=$(cat /etc/os-release 2>/dev/null) | ||||
|     OS_VERSION=$(echo "$OS_INFO" | grep "VERSION_CODENAME" | awk -F ': +' '{print $2}') | ||||
|   fi | ||||
| 
 | ||||
|   if echo "$OS_INFO" | grep -q "Ubuntu"; then | ||||
|     if printf "%s\n" "${UBUNTU_LIST[@]}" | grep -q "^${OS_VERSION}$" | ||||
|     then | ||||
|       if [ ! -f /etc/apt/sources.list.d/pritunl.list ]; then | ||||
|         echo "deb https://repo.pritunl.com/stable/apt $OS_VERSION main" > /etc/apt/sources.list.d/pritunl.list | ||||
|       fi | ||||
|       if [ ! -f /etc/apt/trusted.gpg.d/pritunl.asc ]; then | ||||
|         gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys $PRITUNL_SIGN | ||||
|         gpg --armor --export $PRITUNL_SIGN | tee /etc/apt/trusted.gpg.d/pritunl.asc | ||||
|       fi | ||||
|       apt update | ||||
|       apt install pritunl-client-electron -y | ||||
|       local rc=$? | ||||
|       if [ $rc -eq 0 ]; then | ||||
|         systemctl daemon-reload | ||||
|         rc=$? | ||||
|       fi | ||||
|       return $rc | ||||
|     fi | ||||
|   fi | ||||
| 
 | ||||
|   return 10 | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| # Update pritunl vpn package | ||||
| function update_pritunl() { | ||||
| 
 | ||||
|   OS_INFO=$(lsb_release -a 2>/dev/null) | ||||
|   if [ $? -eq 0 ]; then | ||||
|      OS_VERSION=$(echo "$OS_INFO" | grep "Codename" | awk '{print $2}' | tr -d ' ') | ||||
|   else | ||||
|     OS_INFO=$(cat /etc/os-release 2>/dev/null) | ||||
|     OS_VERSION=$(echo "$OS_INFO" | grep "VERSION_CODENAME" | awk -F ': +' '{print $2}') | ||||
|   fi | ||||
| 
 | ||||
|   if echo "$OS_INFO" | grep -q "Ubuntu"; then | ||||
|     if printf "%s\n" "${UBUNTU_UPDT_LIST[@]}" | grep -q "^${OS_VERSION}$" | ||||
|     then | ||||
|       cd /tmp | ||||
|       wget https://github.com/pritunl/pritunl-client-electron/releases/download/$PRITUNL_UPDT/pritunl-client-electron_$PRITUNL_UPDT-0ubuntu1.${OS_VERSION}_amd64.deb | ||||
|       dpkg -i pritunl-client-electron_$PRITUNL_UPDT-0ubuntu1.${OS_VERSION}_amd64.deb | ||||
|       return $? | ||||
|     fi | ||||
|   fi | ||||
| 
 | ||||
|   return 10 | ||||
| 
 | ||||
| } | ||||
| SOPS_VERSION=v3.9.2 | ||||
| 
 | ||||
| # Install python3 package | ||||
| function python3_install() { | ||||
|  | @ -138,32 +66,24 @@ function sops_install() { | |||
|   case $arch in | ||||
|     x86_64) | ||||
|       # Download the binary | ||||
|       curl -LO https://github.com/getsops/sops/releases/download/v$SOPS_VERSION/sops-v$SOPS_VERSION.linux.amd64 | ||||
|       curl -LO https://github.com/getsops/sops/releases/download/v$SOPS_VERSION/sops-$SOPS_VERSION.linux.amd64 | ||||
|       if [ $? -eq 0 ]; then | ||||
|         # Move the binary in to your PATH | ||||
|         mv sops-v$SOPS_VERSION.linux.amd64 /usr/local/bin/sops | ||||
|         if [ $? -eq 0 ]; then | ||||
|           # Make the binary executable | ||||
|           chmod a+x /usr/local/bin/sops | ||||
|         else | ||||
|           return 1 | ||||
|         fi | ||||
|         # Make the binary executable | ||||
|         chmod +x /usr/local/bin/sops | ||||
|       else | ||||
|         return 1 | ||||
|       fi | ||||
|       ;; | ||||
|     arm*) | ||||
|       # Download the binary | ||||
|       curl -LO https://github.com/getsops/sops/releases/download/v$SOPS_VERSION/sops-v$SOPS_VERSION.linux.arm64 | ||||
|       curl -LO https://github.com/getsops/sops/releases/download/v$SOPS_VERSION/sops-$SOPS_VERSION.linux.arm64 | ||||
|       if [ $? -eq 0 ]; then | ||||
|         # Move the binary in to your PATH | ||||
|         mv sops-v$SOPS_VERSION.linux.arm64 /usr/local/bin/sops | ||||
|         if [ $? -eq 0 ]; then | ||||
|           # Make the binary executable | ||||
|           chmod a+x /usr/local/bin/sops | ||||
|         else | ||||
|           return 1 | ||||
|         fi | ||||
|         # Make the binary executable | ||||
|         chmod +x /usr/local/bin/sops | ||||
|       else | ||||
|         return 1 | ||||
|       fi | ||||
|  |  | |||
|  | @ -1,77 +0,0 @@ | |||
| #!/bin/bash | ||||
| # | ||||
| # Library: gpg.lib | ||||
| # Modified: 2024/12/09 08:20:00 | ||||
| # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] | ||||
| # | ||||
| # 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/>. | ||||
| 
 | ||||
| GPG_DEFAULT_PATH=~/.gnupg | ||||
| GPG_CFG_PATH=bin/config | ||||
| GPG_TEMPLATE=gpg.config | ||||
| GPG_CONFIG=gpg.conf | ||||
| GPG_SUBKEY_ID="" | ||||
| DB_GPG_SUBKEYS_KEY="subkey_id" | ||||
| DB_GPG_SUBKEYS="GPG_SUBKEYS" | ||||
| DF_GPG_SUBKEYS="${DB_GPG_SUBKEYS}.sql" | ||||
| REVOKE_FILES="*.rev" | ||||
| 
 | ||||
| # Test library | ||||
| function gpglib_test() { | ||||
|   echo "GPG Library loaded!" | ||||
|   exit 1 | ||||
| } | ||||
| 
 | ||||
| # Set gpg environment | ||||
| function gpg_setting() { | ||||
| 
 | ||||
|     local BIN_CONFIG=$1 | ||||
|     local GPG_PATH=$2 | ||||
|     local LOCAL_BACKUP=$3 | ||||
|     local TIMESTAMP=$4 | ||||
| 
 | ||||
|     # Check if gpg directory path exists | ||||
|     if [ ! -d "${GPG_PATH}" ] | ||||
|     then | ||||
|         # Create gpg directory path | ||||
|         mkdir -p ${GPG_PATH} | ||||
|         if [ $? -ne 0 ]; then | ||||
|           return 2 | ||||
|         fi | ||||
|     fi | ||||
| 
 | ||||
|     # Check if gpg template file exists | ||||
|     if [ ! -f "${BIN_CONFIG}/${GPG_CFG_PATH}/${GPG_TEMPLATE}" ] | ||||
|     then | ||||
|         return 1 | ||||
|     fi | ||||
| 
 | ||||
|     if [ -d "${LOCAL_BACKUP}" ] | ||||
|     then | ||||
|       if [ -f "${GPG_PATH}/${GPG_CONFIG}" ] | ||||
|       then | ||||
|         # Destination file backup | ||||
|         local BACKUP_FILE="${LOCAL_BACKUP}/gpg${TIMESTAMP}.bak" | ||||
|         cp -f "${GPG_PATH}/${GPG_CONFIG}" "${BACKUP_FILE}" | ||||
|         if [ $? -ne 0 ]; then | ||||
|           return 3 | ||||
|         fi | ||||
|       fi | ||||
|     fi | ||||
| 
 | ||||
|     # Copia el archivo de plantilla al destino | ||||
|     cp -f "${BIN_CONFIG}/${GPG_CFG_PATH}/${GPG_TEMPLATE}" "${GPG_PATH}/${GPG_CONFIG}" | ||||
|     return $? | ||||
| 
 | ||||
| } | ||||
|  | @ -12,21 +12,12 @@ | |||
| #============================================================================== | ||||
| 
 | ||||
| bomsg_000="BOOTSTRAP" | ||||
| bomsg_001="ACTUALIZAR DEVS" | ||||
| bomsg_002="PERMITIR PUERTO 53" | ||||
| bomsg_003="Puerto 53 no se ha liberado!" | ||||
| bomsg_004="Puerto 53 (dns) ha sido liberado para uso no-root" | ||||
| bomsg_005="Arquitectura desconocida:" | ||||
| bomsg_006="Instalando Mozilla SOPS..." | ||||
| bomsg_007="Instalación de Mozilla SOPS completada..." | ||||
| bomsg_008_1="Carpeta" | ||||
| bomsg_008_2="no es del ambiente de desarrollo!" | ||||
| bomsg_010="INSTALAR VPN" | ||||
| bomsg_011="Instalando cliente VPN (pritunl)" | ||||
| bomsg_012="No se completo la instalación del cliente VPN (pritunl)" | ||||
| bomsg_013="Cliente VPN (pritunl) instalado satisfactoriamente!" | ||||
| bomsg_014="Sistema Operativo no soportado por pritunl" | ||||
| bomsg_015="ACTUALIZAR VPN" | ||||
| 
 | ||||
| pymsg_001="Instalando python3" | ||||
| pymsg_002="Instalando dialog" | ||||
|  | @ -38,11 +29,3 @@ pdmsg_001="Instalando Podman..." | |||
| pdmsg_003="Podman fue instalado satisfactoriamente" | ||||
| 
 | ||||
| domsg_005="----> Docker previamente instalado, desinstale para poder instalar PODMAN o utilice DOCKER" | ||||
| 
 | ||||
| bomsg_101_1="Uso:" | ||||
| bomsg_101_2="[--help] [--version] [--update]" | ||||
| bomsg_102="Descripción: Este bash script se usa para instalar el cliente vpn (pritunl)" | ||||
| bomsg_103="Opciones:" | ||||
| bomsg_104="  --help     Muestra este mensaje de ayuda." | ||||
| bomsg_105="  --version  Muestra la versión del script." | ||||
| bomsg_106="  --update   Hace una actualización (upgrade) del cliente cuando no disponible en el repo" | ||||
|  |  | |||
|  | @ -1,20 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| #bash script     : gpg.es | ||||
| #apps            : GPG Developer Utilities | ||||
| #description     : GPG Translate Messages (es) | ||||
| #author		     : MRP/mrp - Mauro Rosero P. | ||||
| #company email   : mauro@rosero.one | ||||
| #personal email  : mauro.rosero@gmail.com | ||||
| #date            : 20241130 | ||||
| #version         : 1.0.2 | ||||
| #notes           : | ||||
| #============================================================================== | ||||
| #============================================================================== | ||||
| 
 | ||||
| 
 | ||||
| gpmsg_000="INICIALIZAR GPG" | ||||
| 
 | ||||
| 
 | ||||
| gpmsg_101="Desea inicializar la configuración de GPG?" | ||||
| gpmsg_102="Inicialización de configuración GPG completada!" | ||||
| gpmsg_103="Plantilla de configuración GPG no existe!" | ||||
|  | @ -1,60 +0,0 @@ | |||
| #!/bin/bash | ||||
| # | ||||
| # update.sh | ||||
| # Modified: 2024/12/01 15:27:00 | ||||
| # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] | ||||
| # | ||||
| # 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/>. | ||||
| 
 | ||||
| DEVSPATH=devs | ||||
| BIN_HOME=$HOME/$DEVSPATH | ||||
| BIN_MESG=bin/msg | ||||
| BIN_LIBS=bin/lib | ||||
| 
 | ||||
| # CHECK SHELL LANGUAGE | ||||
| BIN_LANG=${LANG:0:2} | ||||
| 
 | ||||
| # LOAD BASE BASH LIBRARY | ||||
| source $BIN_HOME/$BIN_LIBS/base.lib | ||||
| #baselib_test | ||||
| 
 | ||||
| load_bootstrap_msg() { | ||||
| 
 | ||||
|   local BIN_PATH=$1 | ||||
|   local MSG_PATH=$2 | ||||
|   local LANGUAGE=$3 | ||||
| 
 | ||||
|   # Load head messages | ||||
|   load_messages $BIN_PATH $MSG_PATH $LANGUAGE "head" | ||||
| 
 | ||||
|   # Load bootstrap messages | ||||
|   load_messages $BIN_PATH $MSG_PATH $LANGUAGE "bootstrap" | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| # Load messages | ||||
| load_bootstrap_msg $BIN_HOME $BIN_MESG $BIN_LANG | ||||
| 
 | ||||
| # Display Headers | ||||
| display_devstools_header "- $bomsg_001" | ||||
| 
 | ||||
| # Run update devs environment | ||||
| if [ "$PWD" == "$BIN_HOME" ] | ||||
| then | ||||
|   git pull | ||||
| else | ||||
|   cd $BIN_HOME | ||||
|   git pull | ||||
| fi | ||||
| 
 | ||||
|  | @ -1,136 +0,0 @@ | |||
| #!/bin/bash | ||||
| # | ||||
| # vpn_install.sh | ||||
| # Modified: 2024/12/01 15:27:00 | ||||
| # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] | ||||
| # | ||||
| # 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/>. | ||||
| 
 | ||||
| DEVSPATH=devs | ||||
| BIN_HOME=$HOME/$DEVSPATH | ||||
| BIN_MESG=bin/msg | ||||
| BIN_LIBS=bin/lib | ||||
| VERSION=1.0.1 | ||||
| 
 | ||||
| # CHECK SHELL LANGUAGE | ||||
| BIN_LANG=${LANG:0:2} | ||||
| 
 | ||||
| # LOAD BASE BASH LIBRARY | ||||
| source $BIN_HOME/$BIN_LIBS/base.lib | ||||
| #baselib_test | ||||
| 
 | ||||
| function load_bootstrap_msg() { | ||||
| 
 | ||||
|   local BIN_PATH=$1 | ||||
|   local MSG_PATH=$2 | ||||
|   local LANGUAGE=$3 | ||||
| 
 | ||||
|   # Load head messages | ||||
|   load_messages $BIN_PATH $MSG_PATH $LANGUAGE "head" | ||||
| 
 | ||||
|   # Load bootstrap messages | ||||
|   load_messages $BIN_PATH $MSG_PATH $LANGUAGE "bootstrap" | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| # Function to display help message | ||||
| function help() { | ||||
|     echo "$bomsg_101_1 $0 $bomsg_101_2" | ||||
|     echo "$bomsg_102" | ||||
|     echo "$bomsg_103" | ||||
|     echo "$bomsg_104" | ||||
|     echo "$bomsg_105" | ||||
|     echo "$bomsg_106" | ||||
| } | ||||
| 
 | ||||
| function install() { | ||||
| 	local BIN_PATH=$1 | ||||
| 	local LIBRARY=$2 | ||||
| 	local MESSAGES=$3 | ||||
|     local INSTALL_LANG=$4 | ||||
|     local UPDATE=$5 | ||||
| 
 | ||||
| 	# Load base bash library | ||||
| 	source $BIN_PATH/$LIBRARY/base.lib | ||||
| 
 | ||||
| 	# Load bootstrap bash library | ||||
| 	source $BIN_PATH/$LIBRARY/bootstrap.lib | ||||
| 
 | ||||
| 	# Load bootstrap messages | ||||
| 	load_bootstrap_msg $BIN_PATH $MESSAGES $INSTALL_LANG | ||||
| 
 | ||||
|     # Install pritunl vpn client (gui) | ||||
|     if $UPDATE; then | ||||
|       update_pritunl | ||||
|       rc=$? | ||||
|     else | ||||
|       install_pritunl | ||||
|       rc=$? | ||||
|     fi | ||||
|     case $rc in | ||||
|       0) | ||||
|         echo "$bomsg_013" | ||||
|         ;; | ||||
|       10) | ||||
|         echo "$bomsg_014" | ||||
|         ;; | ||||
|       *) | ||||
|         echo "$bomsg_012" | ||||
|         ;; | ||||
|     esac | ||||
| } | ||||
| 
 | ||||
| # Load messages | ||||
| load_bootstrap_msg $BIN_HOME $BIN_MESG $BIN_LANG | ||||
| 
 | ||||
| # Check for arguments option | ||||
| help=false | ||||
| version=false | ||||
| update=false | ||||
| title=$bomsg_010 | ||||
| while [[ $# -gt 0 ]]; do | ||||
|   case $1 in | ||||
|     --help) | ||||
|         help=true | ||||
|         shift | ||||
|         ;; | ||||
|     --version) | ||||
|         version=true | ||||
|         shift | ||||
|         ;; | ||||
|     --update) | ||||
|         title="$bomsg_015" | ||||
|         update=true | ||||
|         shift | ||||
|         ;; | ||||
|   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 | ||||
| 
 | ||||
| # Display Headers | ||||
| display_devstools_header "- $title" | ||||
| 
 | ||||
| # Run install with sudo | ||||
| sudo bash -c "$(declare -f load_bootstrap_msg; declare -f install); install $BIN_HOME $BIN_LIBS $BIN_MESG $BIN_LANG $update" | ||||
		Loading…
	
		Reference in a new issue