98 lines
1.7 KiB
Bash
98 lines
1.7 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)
|
|
else
|
|
inverse=""
|
|
bold="[["
|
|
success="[["
|
|
info="[["
|
|
warning="[["
|
|
error="[["
|
|
reset="]]"
|
|
fi
|
|
|
|
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
|
|
}
|