summaryrefslogtreecommitdiff
path: root/.zsh/logging
blob: 49de37f8181e3c1706eaf20e62b4253a8439eceb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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