nix-tools/lib/util-msg.sh

104 lines
2 KiB
Bash
Raw Normal View History

2014-10-08 00:11:53 +02:00
#!/bin/bash
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
2014-12-04 19:20:28 +01:00
export LC_MESSAGES=C
2014-10-08 00:11:53 +02:00
export LANG=C
2016-02-24 11:27:39 +01:00
disable_colors(){
unset ALL_OFF BOLD BLUE GREEN RED YELLOW
}
enable_colors(){
2014-10-08 00:11:53 +02:00
# prefer terminal safe colored and bold text when tput is supported
if tput setaf 0 &>/dev/null; then
ALL_OFF="$(tput sgr0)"
BOLD="$(tput bold)"
RED="${BOLD}$(tput setaf 1)"
GREEN="${BOLD}$(tput setaf 2)"
2014-10-08 00:11:53 +02:00
YELLOW="${BOLD}$(tput setaf 3)"
BLUE="${BOLD}$(tput setaf 4)"
2014-10-08 00:11:53 +02:00
else
2015-03-01 23:55:20 +01:00
ALL_OFF="\e[0m"
BOLD="\e[1m"
RED="${BOLD}\e[31m"
GREEN="${BOLD}\e[32m"
YELLOW="${BOLD}\e[33m"
BLUE="${BOLD}\e[34m"
2014-10-08 00:11:53 +02:00
fi
2016-02-24 11:27:39 +01:00
readonly ALL_OFF BOLD BLUE GREEN RED YELLOW
}
if [[ -t 2 ]]; then
enable_colors
else
disable_colors
2014-10-08 00:11:53 +02:00
fi
plain() {
local mesg=$1; shift
2015-03-01 23:55:20 +01:00
printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
2014-10-08 00:11:53 +02:00
}
msg() {
local mesg=$1; shift
2015-03-01 23:55:20 +01:00
printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
2014-10-08 00:11:53 +02:00
}
msg2() {
local mesg=$1; shift
2015-03-01 23:55:20 +01:00
printf "${BLUE} ->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
2014-10-08 00:11:53 +02:00
}
2016-02-15 18:53:50 +01:00
info() {
local mesg=$1; shift
2015-03-01 23:55:20 +01:00
printf "${YELLOW} -->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
}
2014-10-08 00:11:53 +02:00
warning() {
local mesg=$1; shift
2015-03-01 23:55:20 +01:00
printf "${YELLOW}==> WARNING:${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
2014-10-08 00:11:53 +02:00
}
error() {
local mesg=$1; shift
2015-03-01 23:55:20 +01:00
printf "${RED}==> ERROR:${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
2014-10-08 00:11:53 +02:00
}
stat_busy() {
local mesg=$1; shift
2015-03-01 23:55:20 +01:00
printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" >&2
2014-10-08 00:11:53 +02:00
}
stat_done() {
2015-03-01 23:55:20 +01:00
printf "${BOLD}done${ALL_OFF}\n" >&2
2014-10-08 00:11:53 +02:00
}
2016-02-27 02:31:37 +01:00
cleanup() {
exit ${1:-0}
}
2014-10-08 00:11:53 +02:00
abort() {
2014-11-11 23:02:40 +01:00
error 'Aborting...'
2016-02-27 02:31:37 +01:00
cleanup 255
2014-10-08 00:11:53 +02:00
}
die() {
2014-11-11 23:02:40 +01:00
(( $# )) && error "$@"
2016-02-27 02:31:37 +01:00
cleanup 255
2014-10-08 00:11:53 +02:00
}
import(){
if [[ -r $1 ]];then
source $1
else
die "Could not import $1"
fi
}