#! /bin/bash -e

#  usage : faust2sig foo.dsp        -> foo-sig.pdf
#  usage : faust2sig -svg foo.dsp   -> foo-sig.svg

. usage.sh

echoHelp()
{
    usage faust2sig "[options] <file.dsp>" to display the graph of signals
    option "-svg" to display the SVG
    exit
}

if [ "$#" -eq 0 ]; then
    echo 'Please, provide a Faust file to process !'
    echo ''
    echoHelp
fi

FILES=""
IGNORE=""
FORMAT="pdf"

# Analyze command line
for p in $@; do
    if [ $p = "-help" ] || [ $p = "-h" ]; then
       echoHelp
    elif [ "$p" = -svg ]; then
        FORMAT="svg"
    elif [[ -f "$p" ]] && [ ${p: -4} == ".dsp" ]; then
        FILES="$FILES $p"
    else
        IGNORE="$IGNORE $p"
    fi
done

for f in $FILES; do
    faust -sg $f -o /dev/null || exit
    dot -T$FORMAT $f-sig.dot -o $f.sig.$FORMAT
    rm $f-sig.dot
done
