#! /bin/bash -e

# Usage.
print_usage()
{
    echo Usage : args of faust2graphviewer should be a \'.dsp\' file, or a list of \'.dsp\' files .
    echo Display the graph of tasks
}

# prepare how we are going to open .pdf files
if [[ $(uname) == Darwin ]]; then
    OPEN=open
else
    OPEN=xdg-open
fi

# Main loop of this script :
for FILEPATH in $@ ; do
    if [ -f $FILEPATH ] ; then
        FILENAME=`basename $FILEPATH` &&
        case $FILENAME in
        *.dsp )
            faust -o /dev/null -vec --task-graph $FILEPATH || exit &&
            dot -Tpdf $FILEPATH.dot -o ${FILEPATH%.dsp}-graph.pdf &&
            rm $FILEPATH.dot &&
            ${OPEN} ${FILEPATH%.dsp}-graph.pdf
            ;;
        * )
            echo error : \'$FILEPATH\' does not have a \'.dsp\' extension.
            exit 2
            ;;
        esac
    else
        print_usage
        exit 1
    fi
done
exit 0

