has() {
    local saved_xtrace
    [[ $- == *x* ]] && saved_xtrace=-x || saved_xtrace=+x
    set +x

    local p=$1
    shift
    local i ret=1
    for i in "$@"; do
        if [[ "${i}" == "${p}" ]]; then
            ret=0
            break
        fi
    done

    set ${saved_xtrace}
    return ${ret}
}
export -f has

sudo_preserve_env() {
    local saved_xtrace
    [[ $- == *x* ]] && saved_xtrace=-x || saved_xtrace=+x
    set +x

    local vars=()
    while [[ $# -gt 0 ]]; do
        local arg=$1
        shift
        case ${arg} in
            --) break ;;
            *)  vars+=("${arg}=${!arg}") ;;
        esac
    done

    set ${saved_xtrace}
    sudo env "${vars[@]}" "$@"
}
export -f sudo_preserve_env
