Current File : //opt/cloudlinux/venv/usr/share/python-cllib/scripts/cl-common
#!/bin/bash

# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2018 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT

##################################################
# Common functions                               #
##################################################
VERSION="2.0"

common_current_date=`date +%Y-%m-%d`

function getLogFile(){
    #1 - common path
    if [ ! -e "$1/logs" ];then
        mkdir -p "$1/logs"
    fi
    current_date_time=`date +"%Y-%m-%d %k:%M:%S"`
    echo "$1/logs/$common_current_date.log"
}

function writeToLog(){
    #1 - message
    #2 - common path
    if [ ! -e "$2/logs" ];then
        mkdir -p "$2/logs"
    fi
    current_date_time=`date +"%Y-%m-%d %k:%M:%S"`
    prg=`basename "$0"`
    echo "[$current_date_time from $prg] $1" >> "$2/logs/$common_current_date.log"
}

function writeFileToLog(){
    #1 - file path
    #2 - common path
    if [ ! -e "$2/logs" ];then
        mkdir -p "$2/logs"
    fi
    current_date_time=`date +"%Y-%m-%d %k:%M:%S"`
    prg=`basename "$0"`
    echo "[$current_date_time from $prg] ----------------File Content $1 BEG---------------" >> "$2/logs/$common_current_date.log"
    if [ -e "$1" ];then
        cat $1 >> "$2/logs/$common_current_date.log"
    fi
    echo "[$current_date_time from $prg] ----------------File Content $1 End---------------" >> "$2/logs/$common_current_date.log"
}

function removeEmptyStringsFromFile(){
    filename="$1"
    res=`sed -e '/^$/d' $filename`
    echo "$res" > $filename
}

function deleteAllExcept(){
    #1 - hook
    #2 - tmp name
    #3 - pattern
    #4 - common path
    if [ ! -e "$4/tmp" ]; then
        mkdir -p "$4/tmp"
    fi
    if [ -e "$1" ];then
        cat "$1" | sed -n "$3" > "$4/tmp/$2.tmp.$$"
        echo "#!/bin/bash" > "$1"
        cat "$4/tmp/$2.tmp.$$" >> "$1"
        rm -f "$4/tmp/$2.tmp.$$"
    fi
}

function deleteAllInclude(){
    #1 - hook
    #2 - tmp name
    #3 - pattern
    #4 - common path
    if [ ! -e "$4/tmp" ]; then
        mkdir -p "$4/tmp"
    fi
    if [ -e "$1" ];then
        cat "$1" | sed "$3" > "$4/tmp/$2.tmp.$$"
        cat "$4/tmp/$2.tmp.$$" > "$1"
        rm -f "$4/tmp/$2.tmp.$$"
    fi
}

function showBar {
 nmb=$(cat $0 | grep showBar | wc -l)
 let "nmb = $nmb"
 let "prct = $1 * 30 / $nmb"
 let "prct_n = $1 * 100 / $nmb"
 prg=`basename "$0"`
 echo -n "$prg: [" >&2
 for bar in {1..30}
 do
  if [ $bar -le $prct ];then
    echo -n "#" >&2
  else
    echo -n " " >&2
  fi
 done
 echo -ne "] ($prct_n%)\r" >&2
}

function get_command(){
    command=$(which $1)
    if [ $? != 0 ]; then
        writeToLog "Can't execute command $1..."
        exit 1;
    fi
    echo $command
}

function createHookHeader(){
    #1 - hook name
    #2 - modificator
    #3 - common path
    if [ ! -e "$3/tmp" ]; then
        mkdir -p "$3/tmp"
    fi
    if [ ! -e "$1" ]; then
        echo "#!/bin/bash" > "$1"
        chmod 755 "$1"
    else
        chmod 755 "$1"
        tmp=`/bin/sed -n '/#\!\/bin\/\(ba\)\?sh/p' "$1"`
        if [ -z "$tmp" ];then
            /bin/grep -q "$1.$2.bak" "$1"
            if [ $? = 1 ];then
                mv -f "$1" "$1.$2.bak"
                echo "#!/bin/bash" > "$1"
                echo "$1.$2.bak"' "$@"' >> "$1"
                chmod 755 "$1"
                chmod 755 "$1.$2.bak"
            fi
        fi
    fi
}

function checkHookString(){
    #1 - hook name
    #2 - pattern string
    #3 - comment srting
    if [ -e "$1" ];then
        tmp=`cat "$1" | grep "$2"`
        if [ -z "$tmp" ];then
            echo "$2   #$3" >> $1
        fi
    fi
}

function addHookStringFirst(){
    #1 - hook name
    #2 - pattern string
    #3 - comment srting
    #4 - short hook name
    #5 - common path
    if [ -e "$1" ];then
    cat $1 | sed /$4/d | sed 1a"$2   #$3" > "$5/tmp/future_hook.tmp.$$"
    cat "$5/tmp/future_hook.tmp.$$" > "$1"
    rm -f "$5/tmp/future_hook.tmp.$$"
    fi
}

function getEasyApacheDir(){
    if [ -e /usr/home/cpeasyapache ]; then
        echo "/usr/home/cpeasyapache"
    elif [ -e /home/cpeasyapache ]; then
        echo "/home/cpeasyapache"
    else
        echo "/var/cpanel/cpeasyapache"
    fi
}

function is_ea4(){
    if [ -e '/etc/cpanel/ea4/is_ea4' ]; then
      return 0
    else
      return 1
    fi
}