diff options
Diffstat (limited to '.zsh/logging')
-rw-r--r-- | .zsh/logging | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/.zsh/logging b/.zsh/logging new file mode 100644 index 0000000..49de37f --- /dev/null +++ b/.zsh/logging @@ -0,0 +1,44 @@ +# logging +# +# Logging abilities for the shell initialisation scripts +# +# Copyright © 1994-2008 martin f. krafft <madduck@madduck.net> +# Released under the terms of the Artistic Licence 2.0 +# +# Source repository: git://git.madduck.net/etc/zsh.git +# + +__log() { + local level; level="$1"; shift + echo "${level}: $@" >&2 +} + +__do_debug() { + [ -n "${ZDEBUG:-}" ] +} + +error() { + [[ -o xtrace ]] && set +x && local __XTRACE=1 + __log E "$@" + [ "${__XTRACE:-}" ] && set -x +} + +warn() { + [[ -o xtrace ]] && set +x && local __XTRACE=1 + __log W "$@" + [ "${__XTRACE:-}" ] && set -x +} + +info() { + [[ -o xtrace ]] && set +x && local __XTRACE=1 + __log I "$@" + [ "${__XTRACE:-}" ] && set -x +} + +debug() { + [[ -o xtrace ]] && set +x && local __XTRACE=1 + __do_debug && __log D "$@" + [ "${__XTRACE:-}" ] && set -x +} + +# vim:ft=zsh |