TerabyteTerminator/tools/db/bash-lib

93 lines
3.1 KiB
Bash

#!/bin/bash
#Bash-Library for TerabyteTerminator Project
LIBVER=1.1
{ #set enviroemnt
readonly TRUE=1 #like <stdbool.h>
readonly FALSE=0 #like <stdbool.h>
readonly TTSYNC_EXIST=0 #file exist local
readonly TTSYNC_BACKUP=1 #file exist local - backup exist
readonly TTSYNC_REMOTE=2 #file exists remote - not used jet
readonly TTSYNC_DEL=3 #local file deleted
readonly globalconf="/etc/tt/global"
[ -z "$DEBUG" ] && readonly DEBUG=$FALSE
#ERROR Returns
readonly ERROR_CONFIG=2
readonly ERROR_DBLINK=20
}
# file_size <path> -> (du -b)/1024 [Kb]
function file_size() {
if [ -f "$1" ]; then
echo $(($(du -b "$1" | cut -f 1)/1024))
else
echo 0
fi
}
# db_check -> TRUE/FALSE
function db_check() {
db_query "SHOW GRANTS FOR CURRENT_USER();" > /dev/null 2> /dev/null
if [ $? == 0 ]; then
echo $TRUE
else
echo $FALSE
fi
}
# db_query <query> -> result
function db_query() {
local args="-sN" #no headers, no grid
args+=" -h$dbhost"
args+=" -u$dbuser"
[ -n "$dbpwd" ] && args+=" -p$dbpwd"
[ -n "$dbport" ] && args+=" -P$dbport"
args+=" $dbname"
[ $DEBUG == $TRUE ] && echo $@ >&2
echo $@ | mysql $args
}
# config_load()
function config_load() {
#load functions from LIB
if [ -f "$globalconf" ]; then
local config="$globalconf"
elif [ -f "$(readlink -f "$(dirname $0)/../../src/etc/tt/global")" ]; then
local config="$(readlink -f "$(dirname $0)/../../src/etc/tt/global")"
else
echo "ERROR: Global Config not found"
exit 255
fi
#load db settings
readonly dbname=$(grep -v '#' $config | grep ^dbname= | sed "s|^dbname=||g" | tr -d '"')
readonly dbhost=$(grep -v '#' $config | grep ^dbhost= | sed "s|^dbhost=||g" | tr -d '"')
readonly dbuser=$(grep -v '#' $config | grep ^dbuser= | sed "s|^dbuser=||g" | tr -d '"')
readonly dbpwd=$(grep -v '#' $config | grep ^dbpwd= | sed "s|^dbpwd=||g" | tr -d '"')
readonly dbport=$(grep -v '#' $config | grep ^dbport= | sed "s|^dbport=||g" | tr -d '"')
#db checks
[ "$(db_check)" == $FALSE ] && {
echo "DB ERROR!!" >&2
exit $ERROR_DBLINK
}
#set moviedir
{
moviedir="$(echo $moviedir | sed 's|/$||g')" #remove last '/'
[ -z "$moviedir" ] && [ -f "$config" ] && { # if (no argument) and (globalconf exist)
if [ -z "$(grep "moviedir=" "$config" )" ]; then # and (moviedir is NOT in globalconf)
echo 'ERROR: NO Guilty moviedir SET'
exit $ERROR_CONFIG
else # and (moviedir is in globalconf)
readonly moviedir="$(grep "moviedir=" "$config" | cut -d '=' -f 2 | tr -d '"' | sed 's|/$||g')"
fi
}
[ -d "$moviedir" ] || {
echo 'ERROR: NO Guilty moviedir SET'
exit $ERROR_CONFIG
}
}
}