#!/bin/bash

SOLVER=/opt/potassco/clingo/build/debug/clingo
PLOTTER=/opt/dottoxml/src/dottoxml.py
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

solve () {
    #1 - input file
    OUTPUT=`$SOLVER -n0 $1`
    echo $OUTPUT | sed 's/.*Answer: 1 \(.*\) SATISFIABLE.*/\1/;s/\ /\n/g'
}

graph () {
# 1 - predicate 
# 2 - path
# 3 - filename
# 4 - body
    FILE_DOT=$2/$3.dot
    FILE_YED=$2/$3.graphml
    echo 'digraph xxx {' > $FILE_DOT
    echo "$4" | sed -n /^$1\(/p | sed -E "s/$1\((.*),(.*)\)/\1 -> \2\;/g" >> $FILE_DOT
    echo '}' >> $FILE_DOT
    python $PLOTTER $FILE_DOT $FILE_YED
}
case $1 in
  solve) 
    solve $2
    ;;
  graph)
    SOLUTION=`solve $3`
    OUTPUT_PATH=$(dirname $3)
    OUTPUT_NAME=$(basename $3)
    graph $2 $OUTPUT_PATH $OUTPUT_NAME "$SOLUTION"
    ;;
  *) 
    echo "usage: $0 solve <SOURCE-FILE>"
    echo "usage: $0 graph <PREDICATE> <SOURCE-FILE>"
    ;;
esac
