98 lines
1.8 KiB
Bash
98 lines
1.8 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Configure styling
|
|
if [[ -n "$TERM" ]]
|
|
then
|
|
inverse="$(tput setab 7)$(tput setaf 0)"
|
|
bold="$(tput bold)"
|
|
success="$(tput setab 2)$bold"
|
|
info="$(tput setaf 6)$bold"
|
|
warning="$(tput setaf 3)$bold"
|
|
error="$(tput setab 1)$bold"
|
|
reset=$(tput sgr0)
|
|
fi
|
|
# Ensure text styling, if tput could not work
|
|
inverse=${inverse:-[[}
|
|
bold=${bold:-[[}
|
|
success=${success:-[[}
|
|
info=${info:-[[}
|
|
warning=${warning:-[[}
|
|
error=${error:-[[}
|
|
reset=${reset:-]]}
|
|
|
|
export BOG_TITLE_PRINTED=0
|
|
|
|
# Set pipefail option
|
|
# Exit status of overall pipe
|
|
# instead of last one
|
|
set -o pipefail
|
|
# Avoid spawning subshell
|
|
# Needed for title to be able
|
|
# to be globally updated inside pipe
|
|
shopt -s lastpipe
|
|
|
|
__print_title_header () {
|
|
echo " *************************** "
|
|
echo " ********************************* "
|
|
echo " ****"
|
|
echo "*****"
|
|
}
|
|
|
|
title () {
|
|
if [[ $BOG_TITLE_PRINTED -eq 0 ]]
|
|
then
|
|
__print_title_header
|
|
BOG_TITLE_PRINTED=1
|
|
fi
|
|
|
|
read title
|
|
echo "***** $title"
|
|
}
|
|
|
|
footer () {
|
|
echo "***** *****"
|
|
echo "***** END OF SCRIPT *****"
|
|
echo " **** **** "
|
|
echo " ********************************* "
|
|
echo " *********************** "
|
|
}
|
|
|
|
section () {
|
|
read title
|
|
echo ":::::"
|
|
echo ":$bold(*) $title...$reset"
|
|
}
|
|
|
|
result () {
|
|
local exit_code=$?
|
|
|
|
if [ $exit_code -eq 0 ]
|
|
then
|
|
echo ":)=> $success Ok $reset"
|
|
else
|
|
echo ":(!> $error Error $reset"
|
|
fi
|
|
}
|
|
|
|
output () {
|
|
while read line
|
|
do
|
|
#[ -z "$line" ] && break
|
|
echo "::::| $line"
|
|
done
|
|
}
|
|
|
|
output::warning () {
|
|
while read line
|
|
do
|
|
echo ":::$warning<!>$reset $line"
|
|
done
|
|
}
|
|
|
|
output::info () {
|
|
while read line
|
|
do
|
|
echo ":::$info<?>$reset $line"
|
|
done
|
|
}
|