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) | # 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 | ### 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 |     $ cd $HOME | ||||||
|     $ git clone https://git.rosero.one/mrosero/devs.git |     $ git clone https://git.rosero.one/mrosero/devs.git | ||||||
| 
 | 
 | ||||||
| **Nota:** Previamente, debe tener instalado el comando git. | #### Instalación de herramientas para gestión de contenedores | ||||||
| 
 |  | ||||||
| #### Instalación de herramientas básicas y de 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**. | 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 |     $ cd $HOME/devs | ||||||
|     $ bin/bootstrap.sh |     $ 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 | Antes de poder levantar el contenedor dnsmasq, se requiere dar permisos para poder habilitar el puerto 53: | ||||||
|     $ 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 |  | ||||||
| 
 | 
 | ||||||
|  |     $ dns/setport53.sh | ||||||
|  | @ -55,7 +55,6 @@ install() { | ||||||
|     local WGET_PACKAGE=wget |     local WGET_PACKAGE=wget | ||||||
|     local DIALOG_PACKAGE=dialog |     local DIALOG_PACKAGE=dialog | ||||||
| 	local SOPS_PACKAGE=sops | 	local SOPS_PACKAGE=sops | ||||||
|     local GNUPG_PACKAGE=gnupg |  | ||||||
| 
 | 
 | ||||||
| 	# Load base bash library | 	# Load base bash library | ||||||
| 	source $BIN_PATH/$LIBRARY/base.lib | 	source $BIN_PATH/$LIBRARY/base.lib | ||||||
|  | @ -87,13 +86,6 @@ install() { | ||||||
| 	  os_pkgs_install $GIT_PACKAGE | 	  os_pkgs_install $GIT_PACKAGE | ||||||
| 	fi | 	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 | 	# Install dialog from OS Packages | ||||||
| 	command_installed $DIALOG_PACKAGE | 	command_installed $DIALOG_PACKAGE | ||||||
| 	if [ $? -ne 0 ] | 	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 | DEVS_NAME=config/project.head | ||||||
| GIT_IGNORE=.gitignore | GIT_IGNORE=.gitignore | ||||||
| DATENOW="$(date +"%Y-%m-%d %H:%M:%S")" |  | ||||||
| DATEBAK="$(date +"%Y%m%d%H%M%S")" |  | ||||||
| 
 | 
 | ||||||
| DOCKER_LOCAL=dockerfile.local | DOCKER_LOCAL=dockerfile.local | ||||||
| DOCKER_BASE=dockerfile.base | DOCKER_BASE=dockerfile.base | ||||||
|  |  | ||||||
|  | @ -18,79 +18,7 @@ | ||||||
| # junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>. | # junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| SOPS_VERSION=3.9.2 | SOPS_VERSION=v3.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 |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| # Install python3 package | # Install python3 package | ||||||
| function python3_install() { | function python3_install() { | ||||||
|  | @ -138,32 +66,24 @@ function sops_install() { | ||||||
|   case $arch in |   case $arch in | ||||||
|     x86_64) |     x86_64) | ||||||
|       # Download the binary |       # 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 |       if [ $? -eq 0 ]; then | ||||||
|         # Move the binary in to your PATH |         # Move the binary in to your PATH | ||||||
|         mv sops-v$SOPS_VERSION.linux.amd64 /usr/local/bin/sops |         mv sops-v$SOPS_VERSION.linux.amd64 /usr/local/bin/sops | ||||||
|         if [ $? -eq 0 ]; then |         # Make the binary executable | ||||||
|           # Make the binary executable |         chmod +x /usr/local/bin/sops | ||||||
|           chmod a+x /usr/local/bin/sops |  | ||||||
|         else |  | ||||||
|           return 1 |  | ||||||
|         fi |  | ||||||
|       else |       else | ||||||
|         return 1 |         return 1 | ||||||
|       fi |       fi | ||||||
|       ;; |       ;; | ||||||
|     arm*) |     arm*) | ||||||
|       # Download the binary |       # 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 |       if [ $? -eq 0 ]; then | ||||||
|         # Move the binary in to your PATH |         # Move the binary in to your PATH | ||||||
|         mv sops-v$SOPS_VERSION.linux.arm64 /usr/local/bin/sops |         mv sops-v$SOPS_VERSION.linux.arm64 /usr/local/bin/sops | ||||||
|         if [ $? -eq 0 ]; then |         # Make the binary executable | ||||||
|           # Make the binary executable |         chmod +x /usr/local/bin/sops | ||||||
|           chmod a+x /usr/local/bin/sops |  | ||||||
|         else |  | ||||||
|           return 1 |  | ||||||
|         fi |  | ||||||
|       else |       else | ||||||
|         return 1 |         return 1 | ||||||
|       fi |       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_000="BOOTSTRAP" | ||||||
| bomsg_001="ACTUALIZAR DEVS" |  | ||||||
| bomsg_002="PERMITIR PUERTO 53" | bomsg_002="PERMITIR PUERTO 53" | ||||||
| bomsg_003="Puerto 53 no se ha liberado!" | bomsg_003="Puerto 53 no se ha liberado!" | ||||||
| bomsg_004="Puerto 53 (dns) ha sido liberado para uso no-root" | bomsg_004="Puerto 53 (dns) ha sido liberado para uso no-root" | ||||||
| bomsg_005="Arquitectura desconocida:" | bomsg_005="Arquitectura desconocida:" | ||||||
| bomsg_006="Instalando Mozilla SOPS..." | bomsg_006="Instalando Mozilla SOPS..." | ||||||
| bomsg_007="Instalación de Mozilla SOPS completada..." | 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_001="Instalando python3" | ||||||
| pymsg_002="Instalando dialog" | pymsg_002="Instalando dialog" | ||||||
|  | @ -38,11 +29,3 @@ pdmsg_001="Instalando Podman..." | ||||||
| pdmsg_003="Podman fue instalado satisfactoriamente" | pdmsg_003="Podman fue instalado satisfactoriamente" | ||||||
| 
 | 
 | ||||||
| domsg_005="----> Docker previamente instalado, desinstale para poder instalar PODMAN o utilice DOCKER" | 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