added bashlib files, bashlib repo will be removed from git server
This commit is contained in:
parent
bebb254f28
commit
21e66f1db4
|
@ -0,0 +1,53 @@
|
|||
#!/bin/bash
|
||||
|
||||
#
|
||||
# dialog helper
|
||||
#
|
||||
|
||||
dh()
|
||||
{
|
||||
local bgtitle="kvm-tools $version | $1"
|
||||
|
||||
if [ $2 = "--inputbox" ]; then
|
||||
local size="7 80"
|
||||
elif [ $2 = "--yesno" ]; then
|
||||
local size="20 80"
|
||||
elif [ $2 = "--fselect" ]; then
|
||||
local size="12 80"
|
||||
else
|
||||
local size="20 80 14"
|
||||
fi
|
||||
|
||||
dialog --backtitle "$bgtitle" --no-cancel "$2" "$3" $size $4 2> /tmp/dialog
|
||||
local returncode=$?
|
||||
clear
|
||||
dialogresult=$(cat /tmp/dialog)
|
||||
rm /tmp/dialog
|
||||
return $returncode
|
||||
|
||||
}
|
||||
|
||||
|
||||
# this is still needed by kvm-tools
|
||||
graph()
|
||||
{
|
||||
local bgtitle="kvm-tools $version | $1"
|
||||
|
||||
if [ $2 = "--inputbox" ]; then
|
||||
local size="7 80"
|
||||
elif [ $2 = "--yesno" ]; then
|
||||
local size="20 80"
|
||||
elif [ $2 = "--fselect" ]; then
|
||||
local size="12 80"
|
||||
else
|
||||
local size="20 80 14"
|
||||
fi
|
||||
|
||||
dialog --backtitle "$bgtitle" --no-cancel "$2" "$3" $size $4 2> /tmp/dialog
|
||||
local returncode=$?
|
||||
clear
|
||||
dialogresult=$(cat /tmp/dialog)
|
||||
rm /tmp/dialog
|
||||
return $returncode
|
||||
|
||||
}
|
|
@ -0,0 +1,155 @@
|
|||
|
||||
# socialnerds log engine for bash/shell scripts
|
||||
#
|
||||
# version: 0.1a
|
||||
# author: david@socialnerds.org
|
||||
|
||||
|
||||
# **** help ****
|
||||
# this is basically a collection of bash functions
|
||||
# for making a decent logging in a bash script
|
||||
# amazingly easy.
|
||||
#
|
||||
# in order to use this little logging script
|
||||
# you need to have some global variables defined
|
||||
# loglevel=<0-4>
|
||||
# 0 -- no logging
|
||||
# 1 -- just errors
|
||||
# 2 -- errors & warnings
|
||||
# 3 -- even infos (something like "user was created")
|
||||
# 4 -- debug (more than everything)
|
||||
#
|
||||
# logfile="/path/to/logfile.log"
|
||||
# well.. should be understandable..
|
||||
#
|
||||
# logwhat="kvm-tools"
|
||||
# tells the engine what is actually been logged (example: name of calling script)
|
||||
# just used for syslog
|
||||
#
|
||||
# log2syslog="0|1"
|
||||
# (de)activates logging to the syslog deamen
|
||||
#
|
||||
# log2stdout="0|1"
|
||||
# (de)activates logging to stdout
|
||||
# useful if you don't want to deal with output in your script
|
||||
#
|
||||
# log2file="0|1"
|
||||
# (de)activates logging to logfile
|
||||
#
|
||||
#
|
||||
# usage:
|
||||
# log error|warning|info|debug "log message"
|
||||
|
||||
# **** log function ****
|
||||
log()
|
||||
{
|
||||
# getting local hostname
|
||||
local hostname=$(cat /etc/hostname)
|
||||
|
||||
# if no loglevel is defined the script will end
|
||||
if [ -z $loglevel ]; then
|
||||
echo "logengine[error]: no loglevel defined"
|
||||
exit 1
|
||||
|
||||
# if loglevel is 0, skip logging
|
||||
elif [ $loglevel = "0" ]; then
|
||||
# logging is disabled
|
||||
return 0
|
||||
|
||||
# loglevel has to be something between 0 and 5
|
||||
elif [ ! $loglevel -gt "0" -o ! $loglevel -lt "5" ]; then
|
||||
# loglevel unknown
|
||||
echo "logengine[error]: unknown loglevel"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# stdout routine
|
||||
if [ -z $log2stdout ]; then
|
||||
log2stdout="0"
|
||||
elif [ $log2stdout = "0" ]; then
|
||||
# stdout is disabled
|
||||
:
|
||||
elif [ $log2stdout = "1" ]; then
|
||||
# here goes the actual logging process (stdout)
|
||||
if [ $1 = "error" -a $loglevel -gt "0" ]; then
|
||||
# errors
|
||||
echo "[$1]: $2"
|
||||
elif [ $1 = "warning" -a $loglevel -gt "1" ]; then
|
||||
# warnings
|
||||
echo "[$1]: $2"
|
||||
elif [ $1 = "info" -a $loglevel -gt "2" ]; then
|
||||
# informational
|
||||
echo "[$1]: $2"
|
||||
elif [ $1 = "debug" -a $loglevel -gt "3" ]; then
|
||||
# debug messages
|
||||
echo "[$1]: $2"
|
||||
fi
|
||||
fi
|
||||
|
||||
# syslog routine
|
||||
if [ -z $log2syslog ]; then
|
||||
log2syslog="0"
|
||||
elif [ $log2syslog = "0" ]; then
|
||||
# syslog is disabled
|
||||
:
|
||||
elif [ -z $logwhat ]; then
|
||||
# for syslogging logwhat has to be defined
|
||||
echo "logengine[error]: logwhat not defined"
|
||||
elif [ $log2syslog = "1" ]; then
|
||||
# here goes the actual logging process (syslog)
|
||||
if [ $1 = "error" -a $loglevel -gt "0" ]; then
|
||||
# errors
|
||||
logger -t "$logwhat[$1]" "$2"
|
||||
elif [ $1 = "warning" -a $loglevel -gt "1" ]; then
|
||||
# warnings
|
||||
logger -t "$logwhat[$1]" "$2"
|
||||
elif [ $1 = "info" -a $loglevel -gt "2" ]; then
|
||||
# informational
|
||||
logger -t "$logwhat[$1]" "$2"
|
||||
elif [ $1 = "debug" -a $loglevel -gt "3" ]; then
|
||||
# debug messages
|
||||
logger -t "$logwhat[$1]" "$2"
|
||||
fi
|
||||
fi
|
||||
|
||||
# logfile routine
|
||||
if [ -z $log2file ]; then
|
||||
log2file="0"
|
||||
elif [ $log2file = "0" ]; then
|
||||
# file is disabled
|
||||
:
|
||||
elif [ $log2file = "1" ]; then
|
||||
if [ -z $logfile ]; then
|
||||
# if no logfile is defined the script will end
|
||||
echo "logengine[error]: no logfile defined"
|
||||
exit 1
|
||||
elif ! [ -a $logfile ]; then
|
||||
echo "logengine[warning]: logfile not found"
|
||||
echo "logengine[info]: creating new logfile"
|
||||
touch $logfile
|
||||
if [ $? != 0 ]; then
|
||||
# probably a permission denied error
|
||||
echo "logengine[error]: could not create logfile."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
# here goes the actual logging process (logfile)
|
||||
if [ $1 = "error" -a $loglevel -gt "0" ]; then
|
||||
# errors
|
||||
echo "$(gettimestamp nice) [$1]: $2" >> $logfile
|
||||
elif [ $1 = "warning" -a $loglevel -gt "1" ]; then
|
||||
# warnings
|
||||
echo "$(gettimestamp nice) [$1]: $2" >> $logfile
|
||||
elif [ $1 = "info" -a $loglevel -gt "2" ]; then
|
||||
# informational
|
||||
echo "$(gettimestamp nice) [$1]: $2" >> $logfile
|
||||
elif [ $1 = "debug" -a $loglevel -gt "3" ]; then
|
||||
# debug messages
|
||||
echo "$(gettimestamp nice) [$1]: $2" >> $logfile
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
# end of file
|
|
@ -0,0 +1,74 @@
|
|||
|
||||
# bashlib, main file
|
||||
#
|
||||
# frequently used functions for
|
||||
# pretty much every bash scripts
|
||||
|
||||
|
||||
# **** help ****
|
||||
#
|
||||
# amiroot
|
||||
# usage: amiroot <options>
|
||||
# examples:
|
||||
# amiroot (will end script if you are not root)
|
||||
# amiroot not (will end script if you are root)
|
||||
#
|
||||
# gettimestamp
|
||||
# generates different kinds of timestamps
|
||||
# usage: gettimestamp <options>
|
||||
# examples:
|
||||
# gettimestamp
|
||||
# gettimestamp nice
|
||||
# gettimestamp short
|
||||
#
|
||||
# bashtrap
|
||||
# usage: trap bashtrap INT
|
||||
#
|
||||
|
||||
|
||||
|
||||
# **** check for root privileges ****
|
||||
amiroot()
|
||||
{
|
||||
local user=$(whoami)
|
||||
case $1 in
|
||||
not) #not needed
|
||||
log debug "amiroot - checking for unnecessary root privileges" #debug log
|
||||
if [ "$(whoami)" = "root" ]; then
|
||||
log error "amiroot - you probably should not run this as root. it could mess up your karma."
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
*) #required
|
||||
log debug "amiroot - checking for necessary root privileges" #debug log
|
||||
if [ "$(whoami)" != "root" ]; then
|
||||
log error "amiroot - $USER, you need to gain root privileges to do this."
|
||||
exit 1;
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# **** generate timestamp ****
|
||||
gettimestamp()
|
||||
{
|
||||
if [ -z $1 ]; then
|
||||
date '+%Y%m%d%H%M'
|
||||
elif [ $1 = "nice" ]; then
|
||||
date '+%d.%m.%Y %H:%M'
|
||||
elif [ $1 = "short" ]; then
|
||||
date '+%Y%m%d'
|
||||
fi
|
||||
}
|
||||
|
||||
# **** bashtrap ****
|
||||
bashtrap()
|
||||
{
|
||||
log debug "bashtrap - triggered"
|
||||
clear
|
||||
echo "CTRL+C detected.. exiting!"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
# this gives your bash scripts the ability to get updated
|
||||
# basically it does a simple git pull
|
||||
|
||||
# **** help ****
|
||||
# global vars needed: $repopath, $bashlibpath
|
||||
# it depends on bashlib
|
||||
|
||||
|
||||
# **** update (git pull) ****
|
||||
update()
|
||||
{
|
||||
|
||||
# checking for root privileges
|
||||
amiroot
|
||||
|
||||
# update start message
|
||||
log info "update - starting update of $logwhat and bashlib"
|
||||
|
||||
# bashlib update
|
||||
cd $bashlibpath
|
||||
git pull origin master | grep "files changed"
|
||||
local returncode=$?
|
||||
if [ $returncode = "0" ]; then
|
||||
log info "update - bashlib has been updated"
|
||||
else
|
||||
log info "update - bashlib is already up-to-date"
|
||||
fi
|
||||
|
||||
# update
|
||||
cd $repopath
|
||||
git pull origin master | grep "files changed"
|
||||
local returncode=$?
|
||||
if [ $returncode = "0" ]; then
|
||||
log info "update - $logwhat has been updated"
|
||||
else
|
||||
log info "update - $logwhat is already up-to-date"
|
||||
fi
|
||||
|
||||
}
|
Loading…
Reference in New Issue