From 2af9d3a82a8c6c7a4b63b80447cf176084c53fd3 Mon Sep 17 00:00:00 2001 From: ThomasC Date: Tue, 24 Nov 2020 13:36:15 +0100 Subject: [PATCH] now i got my own repo --- functions.sh | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 functions.sh diff --git a/functions.sh b/functions.sh new file mode 100644 index 0000000..9d96991 --- /dev/null +++ b/functions.sh @@ -0,0 +1,183 @@ +#! /bin/bash + +function e { + echo -ne "${1}\t" +} + +#ok if given program returns given code +# arg1: program to run +# arg2: expected return code (default 0) +function exitCodeOk { + program=$1 + code=${2:=0} + $program &> /dev/null + if [ $? -eq $code ] ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi +} + +#Ok if file size > X +# arg1: file +# arg2: min size +function fileBiggerThan { + if [ ! -f $1 ] ; then echo -ne "0\t" ; return 0 ; fi + filesize=$(stat --format "%s" $1) + if [ $filesize -lt $2 ] ; then echo -ne "0\t" ; else echo -ne "1\t" ; fi +} + +#Ok if file exists +# arg1: file to check +function fileMustExist { +if [ -f ${1} ] ; then echo -ne "1\t" + else echo -ne "0\t" +fi +} + +#Ok if file DOESNOT exists +# arg1: file to check +function fileMustNOTExist { +if [ -f ${1} ] ; then echo -ne "0\t" + else echo -ne "1\t" +fi +} + +#Ok if dir exists +# arg1: dir to check +function dirMustExist { +if [ -d ${1} ] ; then echo -ne "1\t" + else echo -ne "0\t" +fi +} +# Ok if given dir DOESNOT exists +# arg1: dir +function dirMustNOTExist { +if [ -d ${1} ] ; then echo -ne "0\t" + else echo -ne "1\t" +fi +} + +# Ok if file contains at least one occurence of pattern +# arg1: file +# arg2: pattern +function fileMustContain { + file=$1 + shift + string=$@ + if [ ! -f $file ] ; then echo -ne "0\t" ; return 0 ;fi + if ( grep -i -qE "${string}" $file ) ; + then echo -ne "1\t" + else + echo -ne "0\t" + fi +} + +# Return num of occurences of pattern +# arg1: file +# arg2: pattern +function fileCountPattern { + file=$1 + shift + string=$@ + if [ ! -f $file ] ; then echo -ne "0\t" ; return 0 ;fi + num=$(grep -ciE "${string}" $file ) + echo -ne "$num\t" +} + +# Ok if file contains N pattern +# arg1: file +# arg2: num of expected item +# arg3: pattern +function fileMustContainNItem { + file=$1 + n=$2 + shift + string=$@ + if [ ! -f $file ] ; then echo -ne "0\t" ; return 0 ;fi + num=$(grep -ciE "${string}" $file ) + if [ $num -eq $1 ] ; + then echo -ne "1\t" + else + echo -ne "0\t" + fi +} + +# Ok if file DOESNOT contain pattern +# Arg1: file +# ArgN: pattern +function fileMustNOTContain { + file=$1 + shift + string=$@ + if [ ! -f $file ] ; then echo -ne "0\t" ; return 0 ; fi + if ( grep -i -qE "${string}" $file ) ; + then echo -ne "0\t" + else + echo -ne "1\t" + fi +} + +# insert hostname at beginning of result line +function addHeader { + test -f /etc/motd && user="$(cat /etc/motd | sed 's/\n//')\t" + echo -ne "${user}$(hostname -s)\t" +} + +# Ok if given package is installed +# arg1: pkg to check +function pkgInstalled { + pkglist=/tmp/pkg.list + test -f $pkglist || rpm -qa > $pkglist + if ( grep -qi $1 $pkglist ) ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi +} + +# Ok if given package is NOT installed +# arg1: pkg to check +function pkgNotInstalled { + pkglist=/tmp/pkg.list + test -f $pkglist || rpm -qa > $pkglist + if ( grep -qiE $1 $pkglist ) ; then echo -ne "0\t" ; else echo -ne "1\t" ; fi +} + +# ok if given process is running +# arg1: process to check +function processIsRunning { + if ( pgrep -f $1 &> /dev/null ) ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi +} + +#Ok if given command returns 0 +# arg1: command to be run +function commandIsWorking { + command=$1 + if ( $command &> /dev/null ) ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi +} + +# ok if given pattern is detected on command's stdout or stderr +# arg1: command +# arg2: pattern +function commandStdoutPattern { + command=$1 + shift + pattern=$@ + if ( $command 2>&1 | grep -qiE "${pattern}" ) ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi +} + +# ok if given service is enabled +# arg1: service +function serviceIsEnabled { + service=$1 + if ( systemctl is-enabled $1 &> /dev/null ) ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi +} + +# ok if given service is active +# arg1: service +function serviceIsActive { + service=$1 + if ( systemctl is-active $1 &> /dev/null ) ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi +} + +# ok if output of given url contains given stuff +# arg1: url +# arg2: string +function okIfCurl { + url=$1 + shift + if ( curl -q "${url}" | grep -q "$@" ) ; then echo -ne "1\t" ; else echo -ne "0\t" ; fi +}