#!/bin/sh
set -eu

check_mrtg_output() {
    cmd="$1"

    echo "Testing $cmd"

    output="$("$cmd")"

    [ -n "$output" ] || {
        echo "E: $cmd produced no output"
        exit 1
    }

    lines="$(printf '%s\n' "$output" | wc -l)"

    [ "$lines" -eq 4 ] || {
        echo "E: $cmd returned $lines lines instead of 4"
        printf '%s\n' "$output"
        exit 1
    }

    first="$(printf '%s\n' "$output" | sed -n '1p')"
    second="$(printf '%s\n' "$output" | sed -n '2p')"

    echo "$first" | grep -Eq '^[0-9]+$' || {
        echo "E: first value not numeric: $first"
        exit 1
    }

    echo "$second" | grep -Eq '^[0-9]+$' || {
        echo "E: second value not numeric: $second"
        exit 1
    }
}

check_mrtg_output /usr/bin/mrtg-load
check_mrtg_output /usr/bin/mrtg-uptime
