Compare commits
	
		
			3 commits
		
	
	
		
			88d122ea6e
			...
			77d7355497
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 77d7355497 | |||
| ff7c68ef5c | |||
| b52f073424 | 
					 10 changed files with 413 additions and 36 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 gpgp que ya debió ser 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 gpg (previamente 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,6 +56,9 @@ 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 | ||||||
|  | @ -98,7 +101,14 @@ install() { | ||||||
| 	command_installed $DIALOG_PACKAGE | 	command_installed $DIALOG_PACKAGE | ||||||
| 	if [ $? -ne 0 ] | 	if [ $? -ne 0 ] | ||||||
| 	then | 	then | ||||||
| 	  os_pkgs_install $DIALOG_PACKAGE | 	  os_pkgs_install $ZIP_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
									
								
								bin/config/devspath.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								bin/config/devspath.dat
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | devs | ||||||
							
								
								
									
										1
									
								
								bin/config/gpg.backup
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								bin/config/gpg.backup
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | secure/backups | ||||||
							
								
								
									
										17
									
								
								bin/config/packages.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								bin/config/packages.dat
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,17 @@ | ||||||
|  | gh | ||||||
|  | gnupg2 | ||||||
|  | iftop | ||||||
|  | imagemagick | ||||||
|  | iperf | ||||||
|  | jq | ||||||
|  | lsof | ||||||
|  | mutt | ||||||
|  | net-tools | ||||||
|  | nmap | ||||||
|  | paperkey | ||||||
|  | pipx | ||||||
|  | python3-pip | ||||||
|  | python3-gitlab | ||||||
|  | remmina | ||||||
|  | terminator | ||||||
|  | wireshark | ||||||
							
								
								
									
										135
									
								
								bin/gpg_backup.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										135
									
								
								bin/gpg_backup.sh
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,135 @@ | ||||||
|  | #!/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 | ||||||
							
								
								
									
										174
									
								
								bin/lib/gpg.lib
									
									
									
									
									
								
							
							
						
						
									
										174
									
								
								bin/lib/gpg.lib
									
									
									
									
									
								
							|  | @ -17,15 +17,21 @@ | ||||||
| # 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=~/.gnupg | GPG_DEFAULT_PATH=$HOME/.gnupg | ||||||
| GPG_CFG_PATH=bin/config | GPG_CONFIG_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" | ||||||
| DF_GPG_SUBKEYS="${DB_GPG_SUBKEYS}.sql" | SQL_GPG_SUBKEYS="${DB_GPG_SUBKEYS}.sql" | ||||||
| REVOKE_FILES="*.rev" | 
 | ||||||
| 
 | 
 | ||||||
| # Test library | # Test library | ||||||
| function gpglib_test() { | function gpglib_test() { | ||||||
|  | @ -36,42 +42,144 @@ 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 |   then | ||||||
|         # Create gpg directory path |     # Create gpg directory path | ||||||
|         mkdir -p ${GPG_PATH} |     mkdir -p ${GPG_PATH} | ||||||
|         if [ $? -ne 0 ]; then |     if [ $? -ne 0 ]; then | ||||||
|           return 2 |       return 2 | ||||||
|         fi |  | ||||||
|     fi |     fi | ||||||
|  |   fi | ||||||
| 
 | 
 | ||||||
|     # Check if gpg template file exists |   # Check if gpg template file exists | ||||||
|     if [ ! -f "${BIN_CONFIG}/${GPG_CFG_PATH}/${GPG_TEMPLATE}" ] |   if [ ! -f "${BIN_CONFIG}/${GPG_CFG_PATH}/${GPG_TEMPLATE}" ] | ||||||
|     then |   then | ||||||
|         return 1 |     return 1 | ||||||
|     fi |   fi | ||||||
| 
 | 
 | ||||||
|     if [ -d "${LOCAL_BACKUP}" ] |   if [ -d "${LOCAL_BACKUP}" ] | ||||||
|  |   then | ||||||
|  |     if [ -f "${GPG_PATH}/${GPG_CONFIG}" ] | ||||||
|     then |     then | ||||||
|       if [ -f "${GPG_PATH}/${GPG_CONFIG}" ] |       # Destination file backup | ||||||
|       then |       local BACKUP_FILE="${LOCAL_BACKUP}/gpg_${TIMESTAMP}.bak" | ||||||
|         # Destination file backup |       cp -f "${GPG_PATH}/${GPG_CONFIG}" "${BACKUP_FILE}" | ||||||
|         local BACKUP_FILE="${LOCAL_BACKUP}/gpg${TIMESTAMP}.bak" |       if [ $? -ne 0 ]; then | ||||||
|         cp -f "${GPG_PATH}/${GPG_CONFIG}" "${BACKUP_FILE}" |         return 3 | ||||||
|         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 | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										95
									
								
								bin/lib/sqlite.lib
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								bin/lib/sqlite.lib
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,95 @@ | ||||||
|  | #!/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,8 +13,17 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 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,6 +36,7 @@ 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