get_loglevel()
{
    _response="$(erl_rpc 'eturnal_ctl' 'get_loglevel' || :)"

    case $_response in
        '{ok,'*)
            echo "$_response" | sed 's/{ok, *"\(.*\)"}/\1/'
            exit 0
            ;;
        '{error,'*)
            echo "$_response" | sed 's/{error, *"\(.*\)"}/\1/' >&2
            exit 1
            ;;
        *)
            echo "Unknown error: '$_response'" >&2
            exit 1
            ;;
    esac
}

set_loglevel()
{
    _level="$1"
    _response="$(erl_rpc 'eturnal_ctl' 'set_loglevel' "[$_level]" || :)"

    case $_response in
        'ok')
            exit 0
            ;;
        '{error,'*)
            echo "$_response" | sed 's/{error, *"\(.*\)"}/\1/' >&2
            exit 1
            ;;
        *)
            echo "Unknown error: '$_response'" >&2
            exit 1
            ;;
    esac
}

if [ $# -ge 1 ] && [ "x$1" = 'xhelp' ]
then
    echo "Usage: $REL_NAME loglevel [Level]"
    echo "Get or set the current log Level of $REL_NAME."
    echo 'Valid log Levels: critical | error | warning | notice | info | debug'
    exit 0
elif [ $# -eq 0 ]
then
    ping_or_exit
    get_loglevel
elif [ $# -eq 1 ]
then
    ping_or_exit
    set_loglevel "$1"
else
    echo "Usage: $REL_NAME loglevel [Level]" >&2
    exit 2
fi
