#!/bin/bash # Copyright (c) Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2018 All Rights Reserved # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ################################################## # Common fucntions # ################################################## VERSION="0.1beta" common_path_of_cpanel="/usr/share/lve/modlscapi" common_current_date=$(date +%Y-%m-%d) common_tmp_path="$common_path_of_cpanel/tmp" function getLogFile(){ if [ ! -e "$common_path_of_cpanel/logs" ];then mkdir -p "$common_path_of_cpanel/logs" fi current_date_time=$(date +"%Y-%m-%d %k:%M:%S") echo "$common_path_of_cpanel/logs/$common_current_date.log" } function writeToLog(){ if [ ! -e "$common_path_of_cpanel/logs" ];then mkdir -p "$common_path_of_cpanel/logs" fi current_date_time=$(date +"%Y-%m-%d %k:%M:%S") prg=$(basename "$0") echo "[$current_date_time from $prg] $1" >> "$common_path_of_cpanel/logs/$common_current_date.log" } function writeFileToLog(){ if [ ! -e "$common_path_of_cpanel/logs" ];then mkdir -p $common_path_of_cpanel/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---------------" >> "$common_path_of_cpanel/logs/$common_current_date.log" if [ -e "$1" ];then cat "$1" >> "$common_path_of_cpanel/logs/$common_current_date.log" fi echo "[$current_date_time from $prg] ----------------File Content $1 End---------------" >> "$common_path_of_cpanel/logs/$common_current_date.log" } function checkForAppNameSyntax(){ isApache2_0syntax=$(echo "$1" | grep [,\;@]) if [ -n "$isApache2_0syntax" ];then echo "$1" | cut -d',' -f 3 | tr '[:lower:]' '[:lower:]' else echo "$1" fi } function removeEmptyStringsFromFile(){ filename="$1" res=$(sed -e '/^$/d' "$filename") echo "$res" > "$filename" } function deleteAllExcept(){ #1 - hook #2 - tmp name #3 - pattern if [ ! -e "$common_tmp_path" ]; then mkdir -p "$common_tmp_path" fi if [ -e "$1" ];then cat "$1" | sed -n "$3" > "$common_tmp_path/$2.tmp.$$" echo "#!/bin/bash" > "$1" cat "$common_tmp_path/$2.tmp.$$" >> "$1" rm -f "$common_tmp_path/$2.tmp.$$" fi } function deleteAllInclude(){ #1 - hook #2 - tmp name #3 - pattern if [ ! -e "$common_tmp_path" ]; then mkdir -p "$common_tmp_path" fi if [ -e "$1" ];then cat "$1" | sed "$3" > "$common_tmp_path/$2.tmp.$$" cat "$common_tmp_path/$2.tmp.$$" > "$1" rm -f "$common_tmp_path/$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 cmakeSorce(){ CL7=$(uname -r | grep '\.el7') PARAMS="" if [ -n "$CL7" ]; then PARAMS="-DWITH_CRIU:BOOLEAN=TRUE" fi cur=$(pwd) log=$(getLogFile) iscmake=$(get_command "cmake") CMAKE_SRC=$common_tmp_path/tmpcmakesrc if [ -e "$CMAKE_SRC" ];then rm -rf "$CMAKE_SRC" fi mkdir -p $CMAKE_SRC tar -zxvf "$1" -C $CMAKE_SRC >>$log (cd "$CMAKE_SRC/$2" "$iscmake" "$PARAMS" . 1>>$log 2>&1 && make 1>>$log 2>&1 && make install 1>>$log 2>&1) makeproc=$? rm -rf $CMAKE_SRC cd "$cur" return $makeproc } function installModule_lsapi(){ pathtosrc="$common_path_of_cpanel/tars/mod_lsapi.tar.gz" cmakeSorce $pathtosrc "" if [[ $? != 0 ]]; then writeToLog "Linking error mod_lsapi.tar.gz" exit 1 else writeToLog "Module mod_lsapi compiled... Ok" fi if [ ! -e "/usr/local/apache/conf/conf.d" ];then mkdir -p /usr/local/apache/conf/conf.d/ fi if [ ! -e "/usr/local/apache/conf/conf.d/lsapi.conf" ];then cp -f "$common_path_of_cpanel/confs/lsapi.conf" /usr/local/apache/conf/conf.d/lsapi.conf fi return 0 }