initial commit

This commit is contained in:
x0rz 2017-04-08 16:05:14 +02:00
commit 3381016227
2213 changed files with 247426 additions and 0 deletions

187
Linux/bin/bashfunctions Executable file
View file

@ -0,0 +1,187 @@
#!/bin/bash -m
# bashfunctions is run via source (or ".").
# It defines a bunch of variables and functions for the calling script.
# It also does a few things only when sourced by scrubhands.
BASHFUNCTIONSVER=1.0.0.1
PROG=`basename ${0}`
TOOLS=bin
DOWN=down
TEXTS=etc
DOC=doc
UP=up
MAILDIR=mailpull
COMMANDSDIR=targetcommands
if [ "$PROG" = "scrubhands" ] && [ "`echo \"$*\" | grep -- -G`" ] ; then
TESTGETOPDATA=yes
TOP=/tmp
fi
# Set TOP if not set, to either /current link if there or /tmp
if [ ! "$TOP" ] ; then
TOP=/current
[ -L /current ] || TOP=/tmp
fi
OS=`uname -s`
if [ "$OS" = "Linux" ]; then
MINUSN=-n
else
MINUSN=""
fi
OSVERSION=`uname -r`
[ "$TOP" ] || TOP=/home/black/tmp
[ "$PUBLICETHER" ] || PUBLICETHER=eth0
[ "$PRIVATEETHER" ] || PRIVATEETHER=eth1
[ "$DATE" ] || DATE=.
histclean() {
HISTCLEAN=""
TMPHIST=/tmp/.h.$$
DOFILES="$* `ls /.*history /*/.*history /*/*/.*history 2>/dev/null`"
for F in $DOFILES ; do
[ -f "$F" ] || continue
egrep -q "shutdown|reboot|halt|init 0" $F || continue
egrep -v "shutdown|reboot|halt|init 0" $F > $TMPHIST
touch -r $F $TMPHIST
cat $TMPHIST > $F
touch -r $TMPHIST $F
HISTCLEAN="$HISTCLEAN $F"
done
[ "$HISTCLEAN" ] && notered "Cleaned #shutdown|reboot|halt|init 0# lines from $HISTCLEAN"
rm -f $TMPHIST
unset TMPHIST HISTCLEAN DOFILES
}
fixpath() {
# Take any number of PATHs or PATH variables as input,
# Return/echo one in that order with no duplicates (via echo, so use
# backticks or other redirection to take the return value and use it).
# Spaces in any individual PATH entry will be lost, do not do that.
# However, along the way, we:
# Remove all trailing slashes
# Make all slashes single
# Skip . and ./ and any that start with ../
export NEWPATH=
unset DONEFIRST
echo -n PATH=
# echo $* | sed "s,//*,/,g" | \ # Make all slashes single
# sed "s/PATH=//g" | \ # Get rid of PATH= if there
# tr ":" " " | \ # Change all : to a space
# tr " " "\n" | \ # Put one path per line
# while read P # Define P once per path
echo $* | sed "s,//*,/,g" | sed "s/PATH=//g" | tr ":" " " | tr " " "\n" | while read P ; do
# Remove all trailing slashes
P=`echo $P | sed "s,/*$,,g"`
echo :$NEWPATH: | grep -q ":$P:" && continue
# Skip . and ./ and any that start with ../
[ "$P" = "." -o "$P" = "./" ] && continue
[ "$P" = ".." -o "${P:0:3}" = "../" ] && continue
NEWPATH=$NEWPATH:$P
[ "$DONEFIRST" ] && echo -n :
echo -n $P
DONEFIRST=done
done
echo
}
ColorsOff() {
unset COLOR_SUCCESS
unset COLOR_FAILURE
unset COLOR_WARNING
unset COLOR_NORMAL
unset COLOR_NOTE
unset SETCOLOR_SUCCESS
unset SETCOLOR_FAILURE
unset SETCOLOR_WARNING
unset SETCOLOR_NORMAL
unset SETCOLOR_NOTE
}
PreserveFile() {
# Save off $1 if it exists as $1.duplicate.TIMESTAMP.
# If $2 given, save at most that many dupes.
[ "$1" ] || return
[ -e $1 ] || return
MYDATE=`date -u +%Y%m%d%H%M%S`
# Make sure we only have digits in KEEP
MYKEEP=`echo $2 | sed "s/[^0-9]//g"`
if [ "$MYKEEP" ] ; then
MYCOUNT=1
ls -1t $1.DUPLICATE* |
while read name ; do
[ $((MYCOUNT++)) -ge $MYKEEP ] || continue
rm -f $name
done
fi
mv $1 $1.DUPLICATE.$MYDATE
unset MYDATE MYKEEP MYCOUNT
}
note() {
unset N
if [ "$1" = "-n" ] ; then
N=$1
shift
fi
echo -e $N "$COLOR_NOTE${*}$COLOR_NORMAL"
}
notered() {
unset N EXIT
[ "$1" = "exit" ] && EXIT=1 && shift
if [ "$1" = "-n" ] ; then
N=$1
shift
fi
echo -e $N "$COLOR_FAILURE${*}$COLOR_NORMAL"
[ "$EXIT" ] && exit
}
usage() {
unset EXIT
[ "$1" = "exit" ] && EXIT=1 && shift
if [ "$1" = "-h" -a "$usagetext" ] ; then
shift
echo -e "$usagetext"
fi
# We want -v output to be just two digits, so scrubver is #.#
# and suitever can have whole #.#.#.# in it.
if [ "$1" = "-v" -o "$1" = "-h" ] ; then
if [ ! "$VER" -a "$SCRUBVER" ] ; then
echo "$PROG version $SCRUBVER"
elif [ "$VER" ] ; then
echo "$PROG version $VER"
else
echo "$PROG -- unknown version number"
fi
shift
fi
ERRSTR="${*}"
if [ "$ERRSTR" ] ; then
notered "\a${ERRSTR}"
fi
[ "$EXIT" ] && exit
} # end usage
COLOR_SUCCESS="\\033[1;32m"
COLOR_FAILURE="\\033[1;31m"
COLOR_WARNING="\\033[1;33m"
COLOR_NORMAL="\\033[0;39m"
COLOR_NOTE="\\033[0;34m"
SETCOLOR_SUCCESS="echo -en $COLOR_SUCCESS"
SETCOLOR_FAILURE="echo -en $COLOR_FAILURE"
SETCOLOR_WARNING="echo -en $COLOR_WARNING"
SETCOLOR_NORMAL="echo -en $COLOR_NORMAL"
SETCOLOR_NOTE="echo -en $COLOR_NOTE"