segfault/sfbin/funcs.sh
2024-01-20 20:44:05 +00:00

99 lines
1.4 KiB
Bash

#! /bin/bash
# shellcheck disable=SC2034 # Unused
CY="\e[1;33m" # yellow
CG="\e[1;32m" # green
CR="\e[1;31m" # red
CC="\e[1;36m" # cyan
CM="\e[1;35m" # magenta
CW="\e[1;37m" # white
CB="\e[1;34m" # blue
CF="\e[2m" # faint
CN="\e[0m" # none
# CBG="\e[42;1m" # Background Green
# night-mode
CDR="\e[0;31m" # red
CDG="\e[0;32m" # green
CDY="\e[0;33m" # yellow
CDB="\e[0;34m" # blue
CDM="\e[0;35m" # magenta
CDC="\e[0;36m" # cyan
CUL="\e[4m"
# 6 colors for rainbows
# CRBOW=("$CDR" "$CDG" "$CDY" "$CDB" "$CDM" "$CDC")
ASSERT_EMPTY()
{
[[ -n $2 ]] && return
ERREXIT 255 "ASSERT: \$$1= is empty"
}
ERR()
{
echo -e >&2 "[$(date '+%F %T' -u)] [${CR}ERROR${CN}] $*"
}
WARN()
{
((IS_WARN++))
echo -e >&2 "[$(date '+%F %T' -u)] [${CDY}#${IS_WARN} WARN${CN}] $*"
}
WARN_RESET()
{
unset IS_WARN
}
LOG()
{
local name
name="$1"
shift 1
echo -e "[$(date '+%F %T' -u)] [${CDM}${name}${CN}] $*"
}
ERREXIT()
{
local code
code="$1"
shift 1
ERR "$@"
exit "$code"
}
SLEEPEXIT()
{
local code
local s
code="$1"
s="$1"
shift 2
ERR "$@"
sleep "$s"
exit "$code"
}
if [[ -z $SF_DEBUG ]]; then
DEBUGF(){ :;}
else
DEBUGF(){ echo -e 1>&2 "${CY}DEBUG:${CN} $*";}
fi
WARN_ENTER()
{
[[ -z $IS_WARN ]] && return
unset IS_WARN
echo "Press Enter to continue. Aborting in 10 seconds otherwise..."
read -r -t 10 || ERREXIT 255 "Aborting. User did not press Enter."
}