utils/lib.sh: colorize messages

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
Markus Heiser 2020-01-31 18:24:31 +01:00
parent 1e3d2f6800
commit 56a93ee770
3 changed files with 68 additions and 30 deletions

View File

@ -287,7 +287,7 @@ remove_user() {
}
interactive_shell(){
echo "// exit with CTRL-D"
echo "// exit with ${_BCyan}CTRL-D${_creset}"
sudo -H -u ${SERVICE_USER} -i
}
@ -397,7 +397,9 @@ EOF
echo
systemctl --no-pager -l status filtron.service
echo
read -r -s -n1 -t 2 -p "// use CTRL-C to stop monitoring the log"
# shellcheck disable=SC2059
printf "// use ${_BCyan}CTRL-C${_creset} to stop monitoring the log"
read -r -s -n1 -t 2
echo
while true; do
trap break 2

View File

@ -75,19 +75,36 @@ required_commands() {
return $exit_val
}
rst_title() {
# usage: rst_title <header-text> [part|chapter|section]
# colors
# ------
case ${2-chapter} in
part) printf "\n${1//?/=}\n$1\n${1//?/=}\n";;
chapter) printf "\n${1}\n${1//?/=}\n";;
section) printf "\n${1}\n${1//?/-}\n";;
*)
err_msg "invalid argument '${2}' in line $(caller)"
return 42
;;
esac
# shellcheck disable=SC2034
set_terminal_colors() {
_colors=8
_creset='\e[0m' # reset all attributes
_Black='\e[0;30m'
_White='\e[1;37m'
_Red='\e[0;31m'
_Green='\e[0;32m'
_Yellow='\e[0;33m'
_Blue='\e[0;34m'
_Violet='\e[0;35m'
_Cyan='\e[0;36m'
_BBlack='\e[1;30m'
_BWhite='\e[1;37m'
_BRed='\e[1;31m'
_BGreen='\e[1;32m'
_BYellow='\e[1;33m'
_BBlue='\e[1;34m'
_BPurple='\e[1;35m'
_BCyan='\e[1;36m'
}
set_terminal_colors
# reST
# ----
if command -v fmt >/dev/null; then
export FMT="fmt -u"
@ -95,6 +112,20 @@ else
export FMT="cat"
fi
rst_title() {
# usage: rst_title <header-text> [part|chapter|section]
case ${2-chapter} in
part) printf "\n${_BGreen}${1//?/=}\n$1\n${1//?/=}${_creset}\n";;
chapter) printf "\n${_BGreen}${1}\n${1//?/=}${_creset}\n";;
section) printf "\n${_BGreen}${1}\n${1//?/-}${_creset}\n";;
*)
err_msg "invalid argument '${2}' in line $(caller)"
return 42
;;
esac
}
rst_para() {
# usage: RST_INDENT=1 rst_para "lorem ipsum ..."
local prefix=''
@ -106,9 +137,9 @@ rst_para() {
fi
}
err_msg() { echo -e "ERROR: $*" >&2; }
warn_msg() { echo -e "WARN: $*" >&2; }
info_msg() { echo -e "INFO: $*"; }
err_msg() { echo -e "${_BRed}ERROR:${_creset} $*" >&2; }
warn_msg() { echo -e "${_BBlue}WARN:${_creset} $*" >&2; }
info_msg() { echo -e "${_BYellow}INFO:${_creset} $*" >&2; }
clean_stdin() {
if [[ $(uname -s) != 'Darwin' ]]; then
@ -121,11 +152,14 @@ wait_key(){
clean_stdin
local _t=$1
local msg="${MSG:-** press any [KEY] to continue **}"
local msg="${MSG}"
[[ -z "$msg" ]] && msg="${_Green}** press any [${_BCyan}KEY${_Green}] to continue **${_creset}"
[[ ! -z $FORCE_TIMEOUT ]] && _t=$FORCE_TIMEOUT
[[ ! -z $_t ]] && _t="-t $_t"
printf "$msg"
# shellcheck disable=SC2086
read -r -s -n1 $_t -p "$msg"
read -r -s -n1 $_t
echo
clean_stdin
}
@ -142,12 +176,12 @@ ask_yn() {
case "${2}" in
Yn)
local exit_val=${EXIT_YES}
local choice="[YES/no]"
local choice="[${_BGreen}YES${_creset}/no]"
local default="Yes"
;;
*)
local exit_val=${EXIT_NO}
local choice="[NO/yes]"
local choice="[${_BGreen}NO${_creset}/yes]"
local default="No"
;;
esac
@ -201,7 +235,7 @@ prefix_stdout () {
local prefix=" | "
if [[ ! -z $1 ]] ; then prefix="$1"; fi
if [[ ! -z $1 ]] ; then prefix="${_BYellow}$1${_creset}"; fi
# shellcheck disable=SC2162
(while IFS= read line; do
@ -270,17 +304,17 @@ choose_one() {
[[ ! -z $_t ]] && _t="-t $_t"
list=("$@")
echo -e "Menu::"
echo -e "${_BGreen}Menu::${_creset}"
for ((i=1; i<= $((max -1)); i++)); do
if [[ "$i" == "$default" ]]; then
echo -e " $i.) ${list[$i]} [default]"
echo -e " ${_BGreen}$i.${_creset}) ${list[$i]} [default]"
else
echo -e " $i.) ${list[$i]}"
fi
done
while true; do
clean_stdin
printf "$1 [$default] "
printf "$1 [${_BGreen}$default${_creset}] "
if (( 10 > max )); then
# shellcheck disable=SC2086
@ -403,11 +437,11 @@ install_template() {
;;
"interactiv shell")
echo "// edit ${dst} to your needs"
echo "// exit with CTRL-D"
echo "// exit with ${_BCyan}CTRL-D${_creset}"
sudo -H -u "${owner}" -i
$DIFF_CMD "${dst}" "${template_file}"
echo
echo "did you edit file ..."
echo "${_BBlack}did you edit file ...${_creset}"
printf " ${template_file}"
if ask_yn "... to your needs?"; then
break

View File

@ -445,9 +445,9 @@ deactivate_service() {
uWSGI_restart
}
interactive_shell() {
echo "// exit with CTRL-D"
sudo -H -u "${SERVICE_USER}" -i
interactive_shell(){
echo "// exit with ${_BCyan}CTRL-D${_creset}"
sudo -H -u ${SERVICE_USER} -i
}
git_diff() {
@ -534,7 +534,9 @@ EOF
echo
systemctl --no-pager -l status uwsgi.service
echo
read -r -s -n1 -t 2 -p "// use CTRL-C to stop monitoring the log"
# shellcheck disable=SC2059
printf "// use ${_BCyan}CTRL-C${_creset} to stop monitoring the log"
read -r -s -n1 -t 2
echo
while true; do
trap break 2