#!/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 ^dbpwd= | sed "s|^dbport=||g" | tr -d '"')

    #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
        }
    }
}