Compare commits
10 commits
9c7192ed0d
...
88d122ea6e
Author | SHA1 | Date | |
---|---|---|---|
88d122ea6e | |||
76e7c7a5de | |||
141ed2b0d3 | |||
821ce472a4 | |||
1cd318b7f6 | |||
a88555da13 | |||
7062e1b2fb | |||
d6b4014e1c | |||
0362a9fc41 | |||
09b233e461 |
12 changed files with 652 additions and 17 deletions
50
README.md
50
README.md
|
@ -1,9 +1,5 @@
|
|||
# AMBIENTE LOCAL PARA DESARROLLADORES (MRDEVS TOOLS)
|
||||
## GUÍA PARA DESARROLLADORES - REV. 30/11/2024
|
||||
|
||||
### REQUISITOS DE INSTALACIÓN
|
||||
|
||||
(Pendiente)
|
||||
## GUÍA PARA DESARROLLADORES - REV. 08/12/2024
|
||||
|
||||
### PREPARACIÓN DE AMBIENTE LOCAL PARA DESARROLLADORES
|
||||
|
||||
|
@ -14,17 +10,51 @@ En la carpeta $HOME descargue el repositorio devs (la carpeta no debe existir):
|
|||
$ cd $HOME
|
||||
$ git clone https://git.rosero.one/mrosero/devs.git
|
||||
|
||||
#### Instalación de herramientas para gestión de contenedores
|
||||
**Nota:** Previamente, debe tener instalado el comando git.
|
||||
|
||||
#### 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**.
|
||||
|
||||
$ cd $HOME/devs
|
||||
$ bin/bootstrap.sh
|
||||
|
||||
### GESTIÓN DE DNS LOCAL PARA DESARROLLADORES (DNSMASQ)
|
||||
#### Actualización de ambiente local de desarrollo
|
||||
|
||||
#### Habilitar permiso local para puerto 53 (DNS)
|
||||
Actualice los nuevos cambios y funcionalidades del ambiente de desarrollo local raíz
|
||||
|
||||
Antes de poder levantar el contenedor dnsmasq, se requiere dar permisos para poder habilitar el puerto 53:
|
||||
$ 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
|
||||
|
||||
$ dns/setport53.sh
|
|
@ -55,6 +55,7 @@ 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
|
||||
|
@ -86,6 +87,13 @@ 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 ]
|
||||
|
|
6
bin/config/gpg.config
Normal file
6
bin/config/gpg.config
Normal file
|
@ -0,0 +1,6 @@
|
|||
keyserver hkps://keyserver.ubuntu.com
|
||||
utf8-strings
|
||||
keyid-format long
|
||||
with-fingerprint
|
||||
with-sig-list
|
||||
list-options show-notations
|
99
bin/gpg_init.sh
Executable file
99
bin/gpg_init.sh
Executable file
|
@ -0,0 +1,99 @@
|
|||
#!/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
Executable file
100
bin/hexroute
Executable file
|
@ -0,0 +1,100 @@
|
|||
#!/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,6 +19,8 @@
|
|||
|
||||
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,7 +18,79 @@
|
|||
# junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
SOPS_VERSION=v3.9.2
|
||||
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
|
||||
|
||||
}
|
||||
|
||||
# Install python3 package
|
||||
function python3_install() {
|
||||
|
@ -66,24 +138,32 @@ function sops_install() {
|
|||
case $arch in
|
||||
x86_64)
|
||||
# Download the binary
|
||||
curl -LO https://github.com/getsops/sops/releases/download/v$SOPS_VERSION/sops-$SOPS_VERSION.linux.amd64
|
||||
curl -LO https://github.com/getsops/sops/releases/download/v$SOPS_VERSION/sops-v$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
|
||||
# Make the binary executable
|
||||
chmod +x /usr/local/bin/sops
|
||||
if [ $? -eq 0 ]; then
|
||||
# Make the binary executable
|
||||
chmod a+x /usr/local/bin/sops
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
;;
|
||||
arm*)
|
||||
# Download the binary
|
||||
curl -LO https://github.com/getsops/sops/releases/download/v$SOPS_VERSION/sops-$SOPS_VERSION.linux.arm64
|
||||
curl -LO https://github.com/getsops/sops/releases/download/v$SOPS_VERSION/sops-v$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
|
||||
# Make the binary executable
|
||||
chmod +x /usr/local/bin/sops
|
||||
if [ $? -eq 0 ]; then
|
||||
# Make the binary executable
|
||||
chmod a+x /usr/local/bin/sops
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
|
|
77
bin/lib/gpg.lib
Normal file
77
bin/lib/gpg.lib
Normal file
|
@ -0,0 +1,77 @@
|
|||
#!/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,12 +12,21 @@
|
|||
#==============================================================================
|
||||
|
||||
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"
|
||||
|
@ -29,3 +38,11 @@ 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"
|
||||
|
|
20
bin/msg/gpg.es
Normal file
20
bin/msg/gpg.es
Normal file
|
@ -0,0 +1,20 @@
|
|||
#!/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!"
|
60
bin/update.sh
Executable file
60
bin/update.sh
Executable file
|
@ -0,0 +1,60 @@
|
|||
#!/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
|
||||
|
136
bin/vpn_install.sh
Executable file
136
bin/vpn_install.sh
Executable file
|
@ -0,0 +1,136 @@
|
|||
#!/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