haskell-te: 371309c07dee470c53a175a738cf93c65d3e8555

     1: # A quick and dirty sanity check
     2: { bash, mkBin, writeScript }:
     3: 
     4: mkBin {
     5:   name   = "checkStderr";
     6:   paths  = [ bash ];
     7:   vars   = {
     8:     knownErrors = writeScript "known-errors" ''
     9:       jq: error
    10:       MLSpec: Failed
    11:       syntax error
    12:       Argument list too long
    13:       out of memory
    14:       parse error:
    15:       ^error:
    16:     '';
    17:   };
    18:   script = ''
    19:     #!${bash}/bin/bash
    20:     set -e
    21: 
    22:     ERR=""
    23: 
    24:     function check() {
    25:       while read -r LINE
    26:       do
    27:         # Spit out line so user can see it
    28:         echo "$LINE" 1>&2
    29: 
    30:         # Check if it contains an error
    31:         if echo "$LINE" | grep -f "$knownErrors" > /dev/null
    32:         then
    33:           ERR="$ERR $1"
    34:         fi
    35:       done
    36:     }
    37: 
    38:     # Check stdin if it's not a TTY
    39:     if ! [ -t 0 ]
    40:     then
    41:       cat | check "stdin (NOTE: May have been redirected from stderr)"
    42:     fi
    43: 
    44:     # Check any given args
    45:     for F in "$@"
    46:     do
    47:       check "$F" < "$F"
    48:     done
    49: 
    50:     [[ -z "$ERR" ]] || {
    51:       echo "Errors found in$ERR" 1>&2
    52:       exit 2
    53:     }
    54: 
    55:     exit
    56:   '';
    57: }

Generated by git2html.