segfault/sfbin/funcs.sh

99 lines
1.4 KiB
Bash
Raw Permalink Normal View History

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