devs/bin/lib/sqlite.lib
Mauro Rosero P 6210bd07f3
[MODIFIED] Cambio para manejo de perfil de desarrollador
- Se cambia la libreria gpg a developers
- Se cambia el comando gpg_backup.sh a profile_backup.sh
- Se hacen mejoras a la documentación del sistema
- El respaldo ahora incluye las carpetas .ssh, .gnugp y .gitconfig del usuario
- Otros cambios menores
2024-12-14 16:20:43 -05:00

96 lines
2.2 KiB
Bash

#!/bin/bash
#
# Library: sqlite.lib
# Description: SQLITE Developers Library
# 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
clear
sqlite3 "$DATABASE" ".dump $TABLE" >> $DUMP_FILE
rc=$?
if [ $rc -gt 1 ]; then
return $rc
fi
fi
done
return 0
}