#!/bin/sh

HOMEPAGE_DIR="homepage"
GLGRAPH_DIR="glgraph"
VERSION=`cat $GLGRAPH_DIR/glgraph.pl | grep "version_string" | grep my | grep -v "CVS" | cut -d "\"" -f 2`
GLGRAPH="glgraph_$VERSION.pl"
GLFILE=`echo $GLGRAPH.tar.bz2 | sed s/.pl//`
GLFILE_SRC=`echo $GLGRAPH\_src.tar.bz2 | sed s/.pl//`

clean() {
  echo "Cleaning..."
  rm $HOMEPAGE_DIR/*~ 2>/dev/null
  rm $HOMEPAGE_DIR/*/*~ 2>/dev/null
  rm $HOMEPAGE_DIR/*/*/*~ 2>/dev/null
  rm $HOMEPAGE_DIR/downl/glgraph* 2>/dev/null
  rm $HOMEPAGE_DIR/downl/documentation.html 2>/dev/null
}

docs() {
  echo "Creating documentation..."
  cat $HOMEPAGE_DIR/index.html | grep -v '<!-- HOMEPAGE -->' > $HOMEPAGE_DIR/downl/documentation.html
}

single() {
  echo "Creating single file..."
  cat $GLGRAPH_DIR/glgraph.pl | grep -v "#CVS$" > $GLGRAPH
  cat $GLGRAPH_DIR/keyboard.pm | grep -v "^1;$" | grep -v "#CVS$" >> $GLGRAPH
  cat $GLGRAPH_DIR/cmd.pm | grep -v "^1;$" | grep -v "#CVS$" >> $GLGRAPH
  cat $GLGRAPH_DIR/default.pm | grep -v "^1;$" | grep -v "#CVS$" >> $GLGRAPH
  cat $GLGRAPH_DIR/glinit.pm | grep -v "^1;$" | grep -v "#CVS$" >> $GLGRAPH
  cat $GLGRAPH_DIR/color.pm | grep -v "^1;$" | grep -v "#CVS$" >> $GLGRAPH
  cat $GLGRAPH_DIR/idleloops.pm | grep -v "^1;$" | grep -v "#CVS$" >> $GLGRAPH
  cat $GLGRAPH_DIR/gldisplay.pm | grep -v "^1;$" | grep -v "#CVS$" >> $GLGRAPH
  cat $GLGRAPH_DIR/glmenus.pm | grep -v "^1;$" | grep -v "#CVS$" >> $GLGRAPH
  cat $GLGRAPH_DIR/screenshot.pm | grep -v "^1;$" | grep -v "#CVS$" >> $GLGRAPH
  cp $GLGRAPH $HOMEPAGE_DIR/downl/
  cp $GLGRAPH $HOMEPAGE_DIR/downl/glgraph
  mv $GLGRAPH $HOMEPAGE_DIR/old/releases/
  chmod +x $HOMEPAGE_DIR/downl/glgraph
}

release() {
  echo "Creating GLgraph $VERSION release..."
  ln -s downl $HOMEPAGE_DIR/glgraph
  tar -C $HOMEPAGE_DIR -cjf $GLFILE glgraph/glgraph glgraph/documentation.html glgraph/LICENSE
  rm $HOMEPAGE_DIR/glgraph
  mv $GLFILE $HOMEPAGE_DIR/downl/
}

src_release() {
  echo "Creating GLgraph $VERSION release (SRC)..."
  tar -cjf $GLFILE_SRC $GLGRAPH_DIR
  mv $GLFILE_SRC $HOMEPAGE_DIR/downl/
}

backup() {
  echo "Creating GLgraph backup..."
  tar -cjf glgraph_backup.tar.bz2 *
  mv glgraph_backup.tar.bz2 ../
}

case "$1" in
    "clean")
      clean
    ;;
    "")
      single
      docs
      release
      src_release
    ;;
    "docs")
      docs
    ;;
    "single")
      single
    ;;
    "release")
      clean
      single
      docs
      release
    ;;
    "src")
      clean
      single
      docs
      src_release
    ;;
    "all")
      clean
      single
      docs
      release
      src_release
      backup
    ;;
    *)
      echo "Usage: make_glg {clean|single|docs|src|release|all}" >&2
      exit 1
esac
