Compare commits
	
		
			No commits in common. "77d7355497d074c57eb9f63fb113ea158eb91be9" and "88d122ea6e4fccb2b35c38a0eeb34a5d75e2153a" have entirely different histories.
		
	
	
		
			77d7355497
			...
			88d122ea6e
		
	
		
					 10 changed files with 39 additions and 416 deletions
				
			
		|  | @ -49,7 +49,7 @@ Nota: En determinadas versiones, las actualizaciones a partir de los repositorio | ||||||
| 
 | 
 | ||||||
| #### Inicialización de configuración 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 gpg (previamente instalado con la ejecución de bin/boostrap.sh). | 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: | En este paso estableceremos la configuración por defecto de GPG: | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -56,9 +56,6 @@ install() { | ||||||
|     local DIALOG_PACKAGE=dialog |     local DIALOG_PACKAGE=dialog | ||||||
| 	local SOPS_PACKAGE=sops | 	local SOPS_PACKAGE=sops | ||||||
|     local GNUPG_PACKAGE=gnupg |     local GNUPG_PACKAGE=gnupg | ||||||
|     local ZIP_PACKAGE=zip |  | ||||||
|     local SQLITE_COMMAND=sqlite3 |  | ||||||
|     local SQLITE_PACKAGE="$SQLITE_COMMAND libsqlite3-dev" |  | ||||||
| 
 | 
 | ||||||
| 	# Load base bash library | 	# Load base bash library | ||||||
| 	source $BIN_PATH/$LIBRARY/base.lib | 	source $BIN_PATH/$LIBRARY/base.lib | ||||||
|  | @ -101,14 +98,7 @@ install() { | ||||||
| 	command_installed $DIALOG_PACKAGE | 	command_installed $DIALOG_PACKAGE | ||||||
| 	if [ $? -ne 0 ] | 	if [ $? -ne 0 ] | ||||||
| 	then | 	then | ||||||
| 	  os_pkgs_install $ZIP_PACKAGE | 	  os_pkgs_install $DIALOG_PACKAGE | ||||||
| 	fi |  | ||||||
| 
 |  | ||||||
| 	# Install sqlite3 from OS Packages |  | ||||||
| 	command_installed $SQLITE_COMMAND |  | ||||||
| 	if [ $? -ne 0 ] |  | ||||||
| 	then |  | ||||||
| 	  os_pkgs_install $SQLITE_PACKAGE |  | ||||||
| 	fi | 	fi | ||||||
| 
 | 
 | ||||||
| 	# Install python from OS Packages | 	# Install python from OS Packages | ||||||
|  |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| devs |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| secure/backups |  | ||||||
|  | @ -1,17 +0,0 @@ | ||||||
| gh |  | ||||||
| gnupg2 |  | ||||||
| iftop |  | ||||||
| imagemagick |  | ||||||
| iperf |  | ||||||
| jq |  | ||||||
| lsof |  | ||||||
| mutt |  | ||||||
| net-tools |  | ||||||
| nmap |  | ||||||
| paperkey |  | ||||||
| pipx |  | ||||||
| python3-pip |  | ||||||
| python3-gitlab |  | ||||||
| remmina |  | ||||||
| terminator |  | ||||||
| wireshark |  | ||||||
|  | @ -1,135 +0,0 @@ | ||||||
| #!/bin/bash |  | ||||||
| # |  | ||||||
| # gpg_backup.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 SQLITE3 BASH LIBRARY |  | ||||||
| source $BIN_HOME/$BIN_LIBS/sqlite.lib |  | ||||||
| #sqlitelib_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_001}" |  | ||||||
| 
 |  | ||||||
| # Check if dialog is not installed, exited! |  | ||||||
| command_installed "dialog" |  | ||||||
| if [ $? -ne 0 ] |  | ||||||
| then |  | ||||||
|   display_devstools_header "${gpmsg_001}" |  | ||||||
|   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 |  | ||||||
| 
 |  | ||||||
| command_installed "zip" |  | ||||||
| if [ $? -ne 0 ]; then |  | ||||||
|   dialog_error_box "${head_error}" "${head_zip}" |  | ||||||
|   exit 9 |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| # Backup de claves GPG |  | ||||||
| dialog_yesno "${gpmsg_105}" |  | ||||||
| case ${result} in |  | ||||||
|   0) |  | ||||||
|     gpg_backup "$DB_GPG_PATH/$DB_GPG_FILE" "$BIN_HOME/$GPG_CONFIG_PATH" "$DATEBAK" |  | ||||||
|     rc=$? |  | ||||||
|     case $rc in |  | ||||||
|       0) |  | ||||||
|         dialog_error_box "${head_info}" "${gpmsg_106}" |  | ||||||
|         clear |  | ||||||
|         exit 0 |  | ||||||
|         ;; |  | ||||||
|       10) |  | ||||||
|         dialog_error_box "${head_error}" "${gpmsg_107}" |  | ||||||
|         clear |  | ||||||
|         exit $rc |  | ||||||
|         ;; |  | ||||||
|       11) |  | ||||||
|         dialog_error_box "${head_error}" "${gpmsg_108}" |  | ||||||
|         clear |  | ||||||
|         exit $rc |  | ||||||
|         ;; |  | ||||||
|       13) |  | ||||||
|         dialog_error_box "${head_error}" "${gpmsg_109}" |  | ||||||
|         clear |  | ||||||
|         exit $rc |  | ||||||
|         ;; |  | ||||||
|       14) |  | ||||||
|         dialog_error_box "${head_error}" "${gpmsg_111}" |  | ||||||
|         clear |  | ||||||
|         exit $rc |  | ||||||
|         ;; |  | ||||||
|       15) |  | ||||||
|         dialog_error_box "${head_error}" "${gpmsg_112}" |  | ||||||
|         clear |  | ||||||
|         exit $rc |  | ||||||
|         ;; |  | ||||||
|       18) |  | ||||||
|         dialog_error_box "${head_error}" "${gpmsg_110}" |  | ||||||
|         clear |  | ||||||
|         exit $rc |  | ||||||
|         ;; |  | ||||||
|       *) |  | ||||||
|         dialog_error_box "${head_error}" "${head_op_error} (${rc})" |  | ||||||
|         exi $rc |  | ||||||
|         ;; |  | ||||||
|     esac |  | ||||||
|     ;; |  | ||||||
|   *) |  | ||||||
|     dialog_error_box "${head_error}" "${head_op_error}" |  | ||||||
|     ;; |  | ||||||
| esac |  | ||||||
| 
 |  | ||||||
| # End Main Program |  | ||||||
| clear |  | ||||||
							
								
								
									
										180
									
								
								bin/lib/gpg.lib
									
									
									
									
									
								
							
							
						
						
									
										180
									
								
								bin/lib/gpg.lib
									
									
									
									
									
								
							|  | @ -17,21 +17,15 @@ | ||||||
| # Debería haber recibido una copia de la Licencia Pública Affero General | # 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/>. | # junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>. | ||||||
| 
 | 
 | ||||||
| GPG_DEFAULT_PATH=$HOME/.gnupg | GPG_DEFAULT_PATH=~/.gnupg | ||||||
| GPG_CONFIG_PATH=bin/config | GPG_CFG_PATH=bin/config | ||||||
| GPG_TEMPLATE=gpg.config | GPG_TEMPLATE=gpg.config | ||||||
| GPG_CONFIG=gpg.conf | GPG_CONFIG=gpg.conf | ||||||
| GPG_BACKUP_CFG=gpg.backup |  | ||||||
| GPGP_BACKUP_SECRET=gpg.secret |  | ||||||
| GPG_SUBKEY_ID="" | GPG_SUBKEY_ID="" | ||||||
| GPG_REVOKE_FILES="*.rev" |  | ||||||
| 
 |  | ||||||
| DB_GPG_PATH=$HOME/.gnupg |  | ||||||
| DB_GPG_FILE=$USER.db |  | ||||||
| DB_GPG_SUBKEYS_KEY="subkey_id" | DB_GPG_SUBKEYS_KEY="subkey_id" | ||||||
| DB_GPG_SUBKEYS="GPG_SUBKEYS" | DB_GPG_SUBKEYS="GPG_SUBKEYS" | ||||||
| SQL_GPG_SUBKEYS="${DB_GPG_SUBKEYS}.sql" | DF_GPG_SUBKEYS="${DB_GPG_SUBKEYS}.sql" | ||||||
| 
 | REVOKE_FILES="*.rev" | ||||||
| 
 | 
 | ||||||
| # Test library | # Test library | ||||||
| function gpglib_test() { | function gpglib_test() { | ||||||
|  | @ -42,144 +36,42 @@ function gpglib_test() { | ||||||
| # Set gpg environment | # Set gpg environment | ||||||
| function gpg_setting() { | function gpg_setting() { | ||||||
| 
 | 
 | ||||||
|   local BIN_CONFIG=$1 |     local BIN_CONFIG=$1 | ||||||
|   local GPG_PATH=$2 |     local GPG_PATH=$2 | ||||||
|   local LOCAL_BACKUP=$3 |     local LOCAL_BACKUP=$3 | ||||||
|   local TIMESTAMP=$4 |     local TIMESTAMP=$4 | ||||||
| 
 | 
 | ||||||
|   # Check if gpg directory path exists |     # Check if gpg directory path exists | ||||||
|   if [ ! -d "${GPG_PATH}" ] |     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 |     then | ||||||
|       # Destination file backup |         # Create gpg directory path | ||||||
|       local BACKUP_FILE="${LOCAL_BACKUP}/gpg_${TIMESTAMP}.bak" |         mkdir -p ${GPG_PATH} | ||||||
|       cp -f "${GPG_PATH}/${GPG_CONFIG}" "${BACKUP_FILE}" |         if [ $? -ne 0 ]; then | ||||||
|       if [ $? -ne 0 ]; then |           return 2 | ||||||
|         return 3 |         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 | ||||||
|     fi |     fi | ||||||
|   fi |  | ||||||
| 
 | 
 | ||||||
|   # Copia el archivo de plantilla al destino |     # Copia el archivo de plantilla al destino | ||||||
|   cp -f "${BIN_CONFIG}/${GPG_CFG_PATH}/${GPG_TEMPLATE}" "${GPG_PATH}/${GPG_CONFIG}" |     cp -f "${BIN_CONFIG}/${GPG_CFG_PATH}/${GPG_TEMPLATE}" "${GPG_PATH}/${GPG_CONFIG}" | ||||||
|   return $? |     return $? | ||||||
| 
 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # Generate token for backup file |  | ||||||
| function gpg_backup_token() { |  | ||||||
|   local SECRET_FILE=$1 |  | ||||||
| 
 |  | ||||||
|   if [[ ! -e $archivo_token ]] |  | ||||||
|   then |  | ||||||
|     local BACKUP_TOKEN=$(uuidgen) |  | ||||||
|     echo "$BACKUP_TOKEN" > "$SECRET_FILE" |  | ||||||
|     chmod 600 "$SECRET_FILE" |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   return 0 |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # Local backup of gpp keys |  | ||||||
| function gpg_backup() { |  | ||||||
| 
 |  | ||||||
|   local DB_BACKUP=$1 |  | ||||||
|   local BIN_CONFIG=$2 |  | ||||||
|   local TIMESTAMP=$3 |  | ||||||
|   local rc=0 |  | ||||||
| 
 |  | ||||||
|   # Check if backup configuration file exists |  | ||||||
|   if [ ! -f $BIN_CONFIG/$GPG_BACKUP_CFG ] |  | ||||||
|   then |  | ||||||
|      return 10 |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   local LOCAL_BACKUP=$HOME/$(cat < $BIN_CONFIG/$GPG_BACKUP_CFG) |  | ||||||
| 
 |  | ||||||
|   # Check if backup path exist |  | ||||||
|   if [ -z "$LOCAL_BACKUP" ]; then |  | ||||||
|     return 11 |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   if [ ! -d "${LOCAL_BACKUP}" ] |  | ||||||
|   then |  | ||||||
|     mkdir -p "${LOCAL_BACKUP}" |  | ||||||
|     rc=$? |  | ||||||
|     if [ $rc -ne 0 ]; then |  | ||||||
|       return $rc |  | ||||||
|     fi |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   gpg_backup_token "${LOCAL_BACKUP}/$GPGP_BACKUP_SECRET" |  | ||||||
| 
 |  | ||||||
|   # Get secret backup |  | ||||||
|   ZPASSWORD=$(cat < "${LOCAL_BACKUP}/$GPGP_BACKUP_SECRET") |  | ||||||
|   if [ -z "${ZPASSWORD}" ]; then |  | ||||||
|      return 13 |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   # Exportar el anillo de claves GPG a un archivo de respaldo temporal |  | ||||||
|   local TMP_PATH=$(mktemp -d) |  | ||||||
|   local TMP_FILE="gpg.bak" |  | ||||||
|   gpg --export-options backup -o "${TMP_PATH}/${TMP_FILE}" --export |  | ||||||
|   rc=$? |  | ||||||
|   if [ $rc -ne 0 ]; then |  | ||||||
|     rm -rf "${tmp_path}" |  | ||||||
|     return $rc |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   # Dump GPG_SUBKEYS table to SQL |  | ||||||
|   local TMP_DB_DUMP="${SQL_GPG_SUBKEYS}" |  | ||||||
|   local DB_DUMP="${TMP_PATH}/${TMP_DB_DUMP}" |  | ||||||
|   sqlite_dump "${DB_BACKUP}" "${DB_DUMP}" "${DB_GPG_SUBKEYS}" |  | ||||||
|   rc=$? |  | ||||||
|   if [ ${rc} -ne 0 ] |  | ||||||
|   then |  | ||||||
|     rm -rf "${TMP_PATH}" |  | ||||||
|     return $rc |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   # Copiar los archivos de revocación |  | ||||||
|   local REVOKE_PATH="${GNUPGHOME:-$GPG_DEFAULT_PATH}/openpgp-revocs.d" |  | ||||||
|   cp -rf "${REVOKE_PATH}"/${GPG_REVOKE_FILES} "${TMP_PATH}/" |  | ||||||
|   rc=$? |  | ||||||
|   if [ $rc -ne 0 ] |  | ||||||
|   then |  | ||||||
|     rm -rf "${TMP_PATH}" |  | ||||||
|     return $rc |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   # Cambiar el directorio de trabajo a la carpeta temporal para poder hacer el empaquetamiento zip |  | ||||||
|   cd "${TMP_PATH}" |  | ||||||
| 
 |  | ||||||
|   # Comprimir el archivo de respaldo en un archivo ZIP protegido con contraseña |  | ||||||
|   BACKUP_FILE="${LOCAL_BACKUP}/gpg_${USER}_${TIMESTAMP}" |  | ||||||
|   zip -r -P "${ZPASSWORD}" $BACKUP_FILE * |  | ||||||
|   rc=$? |  | ||||||
|   if [ $rc -ne 0 ] |  | ||||||
|   then |  | ||||||
|     rm -rf "${TMP_PATH}" |  | ||||||
|     return $rc |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   rm -rf "${TMP_PATH}" |  | ||||||
|   return 0 |  | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,95 +0,0 @@ | ||||||
| #!/bin/bash |  | ||||||
| # |  | ||||||
| # Library: sqlite.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/>. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| DB_LOADED=1 |  | ||||||
| DB_PATH=dbfiles |  | ||||||
| DB_USER=${USER}.db |  | ||||||
| 
 |  | ||||||
| # Test library |  | ||||||
| function sqlitelib_test() { |  | ||||||
|   echo "Sqlite Library loaded!" |  | ||||||
|   exit 1 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # Export selected sqlite tables |  | ||||||
| # Arguments: |  | ||||||
| # $1: Database file |  | ||||||
| # $2: Dump tables file |  | ||||||
| # $3...: Tables list to dump |  | ||||||
| # Example Use: |  | ||||||
| # sqlite_export "my_database.db" "output.sql" "table1" "table2" |  | ||||||
| # To export all tables, use: |  | ||||||
| # sqlite_export "my_database.db" "output.sql" |  | ||||||
| 
 |  | ||||||
| function sqlite_dump() { |  | ||||||
| 
 |  | ||||||
|   local DATABASE=$1 |  | ||||||
|   local DUMP_FILE=$2 |  | ||||||
| 
 |  | ||||||
|   shift 2 |  | ||||||
|   local TABLES_LIST=("$@") |  | ||||||
|   local rc=0 |  | ||||||
| 
 |  | ||||||
|   # Check if database exists |  | ||||||
|   if [ -z "$DATABASE" ]; then |  | ||||||
|     return 18 |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   if [ ! -f "$DATABASE" ]; then |  | ||||||
|     return 14 |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   # Check not blank dump file name |  | ||||||
|   if [ -z "$DUMP_FILE" ]; then |  | ||||||
|     return 15 |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   if [ ${#TABLES_LIST[@]} -eq 0 ] |  | ||||||
|   then |  | ||||||
|     # If no tables are provided, dump all tables |  | ||||||
|     sqlite3 "$DATABASE" .dump > $DUMP_FILE |  | ||||||
|     rc=$? |  | ||||||
|     if [ $rc -gt 1 ]; then |  | ||||||
|       return $rc |  | ||||||
|     else |  | ||||||
|       return 0 |  | ||||||
|     fi |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   # Reset dump file |  | ||||||
|   > $DUMP_FILE |  | ||||||
| 
 |  | ||||||
|   for TABLE in "${TABLES_LIST[@]}" |  | ||||||
|   do |  | ||||||
|     # Check if table exists |  | ||||||
|     EXIST=$(sqlite3 $DATABASE "SELECT name FROM sqlite_master WHERE type='table' AND name='$TABLE';") |  | ||||||
| 
 |  | ||||||
|     if [ "$EXIST" == "$TABLE" ]; then |  | ||||||
|       sqlite3 "$DATABASE" .dump "$TABLE" >> "$DUMP_FILE" |  | ||||||
|       rc=$? |  | ||||||
|       if [ $rc -gt 1 ]; then |  | ||||||
|         return $rc |  | ||||||
|       fi |  | ||||||
|     fi |  | ||||||
|   done |  | ||||||
| 
 |  | ||||||
|   return 0 |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
|  | @ -13,17 +13,8 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| gpmsg_000="INICIALIZAR GPG" | gpmsg_000="INICIALIZAR GPG" | ||||||
| gpmsg_001="BACKUP GPG" | 
 | ||||||
| 
 | 
 | ||||||
| gpmsg_101="Desea inicializar la configuración de GPG?" | gpmsg_101="Desea inicializar la configuración de GPG?" | ||||||
| gpmsg_102="Inicialización de configuración GPG completada!" | gpmsg_102="Inicialización de configuración GPG completada!" | ||||||
| gpmsg_103="Plantilla de configuración GPG no existe!" | gpmsg_103="Plantilla de configuración GPG no existe!" | ||||||
| gpmsg_104="Desea realizar una copia de seguridad de GPG?" |  | ||||||
| gpmsg_105="Desea realizar copia de seguridad de las claves GPG?" |  | ||||||
| gpmsg_106="Copia de seguridad de claves GPG completada!" |  | ||||||
| gpmsg_107="Archivo de configuración GPG no fue encontrado!" |  | ||||||
| gpmsg_108="Carpeta de copia de seguridad local no existe" |  | ||||||
| gpmsg_109="Contraseña para encriptación del archivo ZIP no fue suministrada" |  | ||||||
| gpmsg_110="Base de Datos SQLITE3 no fue suministrada" |  | ||||||
| gpmsg_111="Archivo de Base de Datos SQLITE3 no existe!" |  | ||||||
| gpmsg_112="Carpeta temporal de Backup no fue suministrada" |  | ||||||
|  |  | ||||||
|  | @ -36,7 +36,6 @@ head_nobuild="No existe carpeta build para creación de contenedores" | ||||||
| head_nodockerfile="No existe el archivo de configuración Dockerfile" | head_nodockerfile="No existe el archivo de configuración Dockerfile" | ||||||
| head_nobuilded="No se pudo completar la construcción del contenedor" | head_nobuilded="No se pudo completar la construcción del contenedor" | ||||||
| head_builded="Construcción del contenedor completada!" | head_builded="Construcción del contenedor completada!" | ||||||
| head_zip="Utilitario zip no ha sido instalado!" |  | ||||||
| 
 | 
 | ||||||
| head_container="Generando contenedor" | head_container="Generando contenedor" | ||||||
| label_email="Correo Electrónico:" | label_email="Correo Electrónico:" | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue