177 lines
4.2 KiB
Bash
177 lines
4.2 KiB
Bash
# ------------------------------------------------------------------------------
|
|
# Some display functions and defines color codes
|
|
# This file is part of the init.sh project
|
|
# Copyright (c) 2019-2021 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
|
|
# ------------------------------------------------------------------------------
|
|
# This file is distributed under 3-clause BSD license.
|
|
# The complete license agreement can be obtained at:
|
|
# https://opensource.org/licenses/BSD-3-Clause
|
|
# ------------------------------------------------------------------------------
|
|
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Standard 16 colors display declaration
|
|
export DEFAULTFG="\e[0;39m"
|
|
export DEFAULTBG="\e[0;49m"
|
|
export DEFAULTCOL=${DEFAULTBG}${DEFAULTFG}
|
|
|
|
# Regular Colors
|
|
export Black='\e[0;30m'
|
|
export Red='\e[0;31m'
|
|
export Green='\e[0;32m'
|
|
export Yellow='\e[0;33m'
|
|
export Blue='\e[0;34m'
|
|
export Purple='\e[0;35m'
|
|
export Cyan='\e[0;36m'
|
|
export White='\e[0;37m'
|
|
|
|
# Bold
|
|
export BBlack='\e[1;30m'
|
|
export BRed='\e[1;31m'
|
|
export BGreen='\e[1;32m'
|
|
export BYellow='\e[1;33m'
|
|
export BBlue='\e[1;34m'
|
|
export BPurple='\e[1;35m'
|
|
export BCyan='\e[1;36m'
|
|
export BWhite='\e[1;37m'
|
|
|
|
# Underline
|
|
export UBlack='\e[4;30m'
|
|
export URed='\e[4;31m'
|
|
export UGreen='\e[4;32m'
|
|
export UYellow='\e[4;33m'
|
|
export UBlue='\e[4;34m'
|
|
export UPurple='\e[4;35m'
|
|
export UCyan='\e[4;36m'
|
|
export UWhite='\e[4;37m'
|
|
|
|
# Background
|
|
export On_Black='\e[40m'
|
|
export On_Red='\e[41m'
|
|
export On_Green='\e[42m'
|
|
export On_Yellow='\e[43m'
|
|
export On_Blue='\e[44m'
|
|
export On_Purple='\e[45m'
|
|
export On_Cyan='\e[46m'
|
|
export On_White='\e[47m'
|
|
|
|
# High Intensity
|
|
export IBlack='\e[0;90m'
|
|
export IRed='\e[0;91m'
|
|
export IGreen='\e[0;92m'
|
|
export IYellow='\e[0;93m'
|
|
export IBlue='\e[0;94m'
|
|
export IPurple='\e[0;95m'
|
|
export ICyan='\e[0;96m'
|
|
export IWhite='\e[0;97m'
|
|
|
|
# Bold High Intensity
|
|
export BIBlack='\e[1;90m'
|
|
export BIRed='\e[1;91m'
|
|
export BIGreen='\e[1;92m'
|
|
export BIYellow='\e[1;93m'
|
|
export BIBlue='\e[1;94m'
|
|
export BIPurple='\e[1;95m'
|
|
export BICyan='\e[1;96m'
|
|
export BIWhite='\e[1;97m'
|
|
|
|
# High Intensity backgrounds
|
|
export On_IBlack='\e[0;100m'
|
|
export On_IRed='\e[0;101m'
|
|
export On_IGreen='\e[0;102m'
|
|
export On_IYellow='\e[0;103m'
|
|
export On_IBlue='\e[0;104m'
|
|
export On_IPurple='\e[0;105m'
|
|
export On_ICyan='\e[0;106m'
|
|
export On_IWhite='\e[0;107m'
|
|
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Display status with color and timestamp
|
|
# (-n on first parameter to stay on the same line)
|
|
# ($1 accepted values: I=info, W=warning, E=error, m=spaces (alignment)
|
|
# no header if anything else)
|
|
prnt()
|
|
{
|
|
if [[ $1 == "-n" ]]; then
|
|
local echoopt=$1
|
|
shift
|
|
else
|
|
local echoopt=""
|
|
fi
|
|
case $1 in
|
|
"I")
|
|
local heads="[ ${IGreen}info${DEFAULTFG} ]"
|
|
shift
|
|
;;
|
|
"W")
|
|
local heads="[${IYellow}Warning${DEFAULTFG}]"
|
|
shift
|
|
;;
|
|
"E")
|
|
local heads="[ ${IRed}ERROR${DEFAULTFG} ]"
|
|
shift
|
|
;;
|
|
"m")
|
|
local heads=" "
|
|
shift
|
|
;;
|
|
esac
|
|
echo $echoopt -e "${IWhite}$(date $DATEFORMAT)${DEFAULTFG} ${heads} $@"
|
|
|
|
unset heads echoopt
|
|
}
|
|
export -f prnt
|
|
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Draw a separator line
|
|
separator()
|
|
{
|
|
echo -ne "$BYellow"
|
|
local i=0
|
|
declare -li length=$(( $(tput cols) - 1 ))
|
|
if [[ $length -gt 80 ]]; then
|
|
length=$(( $length - (($length - 80) / 2) ))
|
|
fi
|
|
for i in $(seq 1 $length); do
|
|
echo -n "-"
|
|
done
|
|
echo -e "$DEFAULTCOL"
|
|
unset i length
|
|
}
|
|
export -f separator
|
|
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Sleep and display a counter (or "the second parameter" every second)
|
|
dsleep()
|
|
{
|
|
i=$1
|
|
while test $i -gt 0
|
|
do
|
|
if [[ -n $2 ]]; then
|
|
echo -n "$2"
|
|
else
|
|
echo -n " ${i}"
|
|
fi
|
|
(( i=i-1 ))
|
|
sleep 1
|
|
done
|
|
echo
|
|
}
|
|
export -f dsleep
|
|
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Dump the keyboard's buffer
|
|
dump_key_buffer()
|
|
{
|
|
while read -r -t 0.001; do
|
|
:
|
|
done
|
|
}
|
|
export -f dump_key_buffer
|
|
|
|
# EOF
|