#!/bin/bash
# 
# Autor: markus schnalke (prog.marmaro.de)
# Autor: Julian Forster (www.ProgMaschine.de.vu)
#


if [ $# -eq 1 ]; then
  if [ $1 = '--version' ] ; then
    echo 'Buddylistgrapher (sed)'
    echo '======================'
    echo 'version 0.1'
    echo
    echo 'by Julian Forster (http://progmaschine.de.vu)'
    echo 'and Markus Schnalke (http://prog.marmaro.de)'
    exit 0
  elif [ $1 = '--help' ] ; then
    echo 'Buddylistgrapher (sed)'
    echo '======================'
    echo
    echo "usage: $0 <input.txt>"
    echo
    echo "The grapher generates output to stdout."
    echo "This output is the input for the graphviz tools."
    echo
    echo "You can use it like this:"
    echo "$0 input.txt | dot -Tpng > pic.png"
    echo
    echo "ToDo:"
    echo "The program was written for one specific kind of input data,"
    echo "so there is still some work to do to use it for general input."
    exit 0
  else

    file=/tmp/`basename $0`-$$
    file2=/tmp/`basename $0`-$$-2

#    # collect all profil names (we only want them as nodes)
#    cat $file | while read line ; do
#      echo -n "`echo $line | grep "Profil von:" | awk '{print " " $3 " "}'`" >> $file2
#    done
#    echo >> $file2


# TODO: fetch only edges for people having a profile

    # output
    echo "digraph G {"
    
    sed -n -e ' 
      /^Profil/{
        s/Profil von: \(.\+\)/"\1"/
        h
        #p
      }


      /^Nachricht/{
        G
        s/ - [-0-9]\+//
        s/Nachricht schreiben \(.\+\)\n/"\1" /
        s/"\(.\+\)" "\(.\+\)"/  "\2" -> "\1";/

        # write out
        p
      }
    ' $1


    echo "}"

#    rm $file $file2
    exit 0

  fi
else
    echo "usage: $0 <input.txt>"
    exit 1
fi
