#!/bin/bash # # Library: sqlite.lib # Modified: 2024/12/09 08:20:00 # Derechos de Autor (C) [2024] [Mauro Rosero P. ] # # 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 . 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 }