#!/bin/sh
#=======================================================================
# Copyright (C) 2006 Massimo Piai <pxam67 (at) virgilio (dot) it>
#=======================================================================
##
## variables and defaults
##
MYNAME=`basename $0 .sh`
DATAPERPAGE=15
TITLE="Titolo"
TITLEFS=50
XHLFS=30
YHLFS=30
XMIN=0
XMAX=20
YMIN=0
YMAX=20
SHORT=6
LONG=8.5
MARKSIZEBASE=0.62
DATA=`cat`
DATAQUANT=`echo $DATA | wc -w`
CFCOLOR="1 0 0"
LANDSCAPE="no"
OUT="jgr"
JGR=`tempfile`
PS=`tempfile`
##
## command line options
##
while [ $1 ]
do
  case $1 in
    --dataperpage | -d) DATAPERPAGE=$2; shift;;
    --title | -t) TITLE=$2; shift;;
    --xmin | -x) XMIN=$2; shift;;
    --xmax | -X) XMAX=$2; shift;;
    --ymin | -y) YMIN=$2; shift;;
    --ymax | -Y) YMAX=$2; shift;;
    --cfcolor | -c) CFCOLOR="$2 $3 $4"; shift 3;;
    --landscape | -l) LANDSCAPE="yes";;
    --psout | -p) OUT="ps";;
    --view | -v) OUT="view";;
    *) echo "$MYNAME.sh: $1: unimplemented option."; exit 1;;
  esac
  shift
done
##
## main program
##
COUNTER=0
for DATUM in $DATA
do
  if [ $((COUNTER%DATAPERPAGE)) -eq 0 ]
  then
    if [ $COUNTER -gt 0 ]
    then
      echo >> $JGR
      echo "newpage" >> $JGR
    fi
    echo "newgraph" >> $JGR
    echo "title fontsize $TITLEFS : $TITLE ($((COUNTER/DATAPERPAGE+1))/$((DATAQUANT/DATAPERPAGE+1)))" >> $JGR
    case $LANDSCAPE in
      "yes")
        echo "xaxis min $((COUNTER-1)) max $((COUNTER+DATAPERPAGE)) size $LONG hash_labels fontsize $XHLFS" >> $JGR
        echo "yaxis min $YMIN max $YMAX size $SHORT hash_labels fontsize $YHLFS" >> $JGR
        echo "newcurve marktype xbar cfill $CFCOLOR marksize $MARKSIZEBASE 1 pts" >> $JGR
        echo -n "$COUNTER $DATUM " >> $JGR
        ;;
      "no")
        echo "xaxis min $XMIN max $XMAX size $SHORT hash_labels fontsize $XHLFS" >> $JGR
        echo "yaxis min $((COUNTER-1)) max $((COUNTER+DATAPERPAGE)) size $LONG hash_labels fontsize $YHLFS" >> $JGR
        echo "newcurve marktype ybar cfill $CFCOLOR marksize 1 $MARKSIZEBASE pts" >> $JGR
        echo -n "$DATUM $COUNTER " >> $JGR
        ;;
    esac
  fi
  case $LANDSCAPE in
    "yes")
      echo -n "$COUNTER $DATUM " >> $JGR;;
    "no")
      echo -n "$DATUM $COUNTER " >> $JGR;;
  esac
  COUNTER=$((COUNTER+1))
done
case $OUT in
  "jgr")
    cat $JGR;;
  "ps")
    case $LANDSCAPE in
      "yes")
        cat $JGR | jgraph -L -P;;
      "no")
        cat $JGR | jgraph -P;;
    esac
    ;;
  "view")
    case $LANDSCAPE in
      "yes")
        cat $JGR | jgraph -L -P > $PS
        gv -spartan -scale -3 -seascape $PS
        ;;
      "no")
        cat $JGR | jgraph -P > $PS
        gv -spartan -scale -3 $PS
        ;;
    esac
esac
rm $JGR $PS
