#!/bin/bash

# Convert curl (or wget) return code to human friendly text.
# See 'man curl' (or 'man wget') for more info.

echo2() { echo -e "$@" >&2; }
Exit()  { echo2 "$1"; exit "$2"; }

ExitCodeToString() {             # only for: 'curl' and 'wget'
    local -r progname=${0##*/}
    local -r exitcode="$1"
    local app="$2"               # optional, defaults to 'curl'
    app=${app##*/}
    [ "$app" ] || app=curl

    case "$app" in
        curl | wget)
            LANG=C MANWIDTH=300 man $app 2>/dev/null | grep -E "^[ ]+$exitcode[ ]+" | sed -E "s|^[ ]+$exitcode[ ]+||"
            exit 0
            ;;
        "" | -*)
            Exit "Usage: $progname <exit-code-from-curl-or-wget>" 125
            ;;
        *)
            Exit "==> Sorry, $progname only supports apps 'curl' and 'wget'." 126
            ;;
    esac
}

ExitCodeToString "$@"

