96 lines
2.2 KiB
Text
96 lines
2.2 KiB
Text
|
#!/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
|
||
|
|
||
|
}
|