X-Git-Url: https://git.cyclocoop.org/?p=lhc%2Fateliers.git;a=blobdiff_plain;f=lib%2Flog.sh;h=e30296050313cceef9d761b020168442f65acb4d;hp=af89e5b0fd6bdb70fb350c7eebd5240133b010a9;hb=8df6cdcf023b4610800962040209dd85e8eb4a34;hpb=5020fb59510a981bd021e5d34fee268d26eb40a0 diff --git a/lib/log.sh b/lib/log.sh index af89e5b..e302960 100644 --- a/lib/log.sh +++ b/lib/log.sh @@ -1,39 +1,71 @@ #!/bin/sh export TERM=${TERM:-linux} -tput_rev=${nocolor:-$(tput rev)} -tput_sgr0=${nocolor:-$(tput sgr0)} -tput_bold=${nocolor:-$(tput bold)} -tput_setaf_0=${nocolor:-$(tput setaf 0)} -tput_setaf_2=${nocolor:-$(tput setaf 2)} +readonly tput_rev=${nocolor:-$(tput rev)} +readonly tput_sgr0=${nocolor:-$(tput sgr0)} +readonly tput_bold=${nocolor:-$(tput bold)} +readonly tput_setaf_0=${nocolor:-$(tput setaf 0)} +readonly tput_setaf_1=${nocolor:-$(tput setaf 1)} +readonly tput_setaf_2=${nocolor:-$(tput setaf 2)} +readonly tput_setaf_3=${nocolor:-$(tput setaf 3)} info () { - set=$(set +o | grep '^set .o xtrace$') + local - set +x printf >&2 "%sINFO%s" "$tput_setaf_2" "$tput_sgr0" - comment=$1 + local comment="$1" shift + local var for var in "$@" do - val=$(eval printf %s "\"\${$var:-}\"" || false) || false + local val="$(eval printf %s "\"\${$var:-}\"" || false)" || false printf >&2 ": %s%s%s=%s%s%s" "$tput_bold$tput_setaf_0" "$var" "$tput_sgr0" "$tput_bold$tput_setaf_0" "$val" "$tput_sgr0" done printf >&2 ": %s%s%s\n" "$tput_rev" "$comment" "$tput_sgr0" - $set + } +warn () { + local - + set +x + printf >&2 "%sWARNING%s" "$tput_setaf_3" "$tput_sgr0" + local comment="$1" + shift + local var + for var in "$@" + do + local val="$(eval printf %s "\"\${$var:-}\"" || false)" || false + printf >&2 ": %s%s%s=%s%s%s" "$tput_bold$tput_setaf_0" "$var" "$tput_sgr0" "$tput_bold$tput_setaf_0" "$val" "$tput_sgr0" + done + printf >&2 ": %s%s%s" "$tput_rev" "$comment" "$tput_sgr0" + local x + if ! [ ${WARNING_CONTINUE:+set} ] + then + printf >&2 " (press Enter to continue)" + read x + else + printf >&2 "\n" + fi } error () { - set=$(set +o | grep '^set .o xtrace$') + local - set +x - printf >&2 "%sERROR%s" "$tput_setaf_2" "$tput_sgr0" - errno=$1 - comment=$2 + printf >&2 "%sERROR%s" "$tput_setaf_1" "$tput_sgr0" + local errno="$1" + local comment="$2" shift 2 + local var for var in "$@" do - val=$(eval printf %s "\"\${$var:-}\"" || false) || false + local val="$(eval printf %s "\"\${$var:-}\"" || false)" || false printf >&2 ": %s%s%s=%s%s%s" "$tput_bold$tput_setaf_0" "$var" "$tput_sgr0" "$tput_bold$tput_setaf_0" "$val" "$tput_sgr0" done printf >&2 ": %s%s%s\n" "$tput_rev" "$comment" "$tput_sgr0" - $set - exit $1 + exit $errno + } +assert () { + local - + set +x + local eval="$1"; shift + local type="assertion failure" + eval "$eval" || + error $? "$eval" type "$@" }