mirror of
https://github.com/hackerschoice/segfault.git
synced 2024-06-28 09:41:18 +00:00
99 lines
1.4 KiB
Bash
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 "$@"
|
|
|
|
slee "$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."
|
|
}
|