#!/bin/ash -euf

msg() {
    printf %s\\n "$*"
}

now() {
    date +"%Y-%m-%d %T"
}

info() {
    printf %s\\n "$PROG: [$(now)]: $*" >&2
}

error() {
    printf %s\\n "$PROG: ERROR: [$(now)]: $*" >&2
}

fatal() {
    printf %s\\n "$PROG: FATAL: [$(now)]: $*" >&2
    exit 1
}

logit() {
    printf '[%s]\t%s\t%s\n' "$(now)" "$stamp" "$*" >>"$logfile"
}

quote() {
    printf %s "$*" | sed -e 's,[+*^$.?],\\&,g' || return 1
}

exclude() {
    [ "$#" -gt 1 ] || return 0
    local p= o=
    p="$1" && shift
    while [ "$#" -gt 0 ]; do
	[ "$1" != "$p" ] && o="$o $1"
	shift
    done
    printf %s "${o# }"
}

cleanspace() {
  printf %s "$*"
}

in_list() {
    local list=" ${*#$1 } "
    [ "$list" != "${list#* $1 }" ]
}

hsh_cleanup() {
    hsh --cleanup -- "$workdir"
    [ "$#" -gt 0 ] && exit "$1" || return 0
}

remove_if_empty() {
    [ "$#" -eq 1 ] || return 0
    [ -d "$1" -a -z "$(find "$1/" -type f -print -quit)" ] || return 0
    rm -rf -- "$1"
}
