packages feed

alms-0.6.6: util

#!/bin/sh

name=alms
host=login.ccs.neu.edu
remote=.www/pubs/$name

version="`awk '$0 ~ /^VERSION *= / { print $3 }' Makefile`"

if [ -z "$1" ]; then
  set showVersion
fi

while [ -n "$1" ]; do
  cmd="$1"
  shift
  case "$cmd" in
    release)
      ver="$1"; shift
      set version "$ver" ci "version bump: $ver" tagversion "$ver" \
          clean dist send link $@
      ;;
    hackage-check)
      cabal upload -c $name-$version.tar.gz
      ;;
    hackage-upload)
      cabal upload $name-$version.tar.gz
      ;;
    hackage)
      set dist hackage-upload $@
      ;;
    clean)
      rm $name*.tar.gz
      ;;
    dist)
      make dist
      ;;
    send)
      scp -p $name-$version.tar.gz $host:$remote/
      ;;
    link)
      ssh $host "cd $remote;
                 DISPLAY='' ex -c '/$name-[0-9.]*[.]tar[.]gz/s/-[0-9.]*[.]tar/-$version.tar/|:wq' index.html;
                 rm $name.tar.gz;
                 ln -s '$name-$version.tar.gz' $name.tar.gz"
      ;;
    edit)
      ssh $host -t vim $remote/index.html
      ;;
    mv)
      src="$1"; shift
      dst="$1"; shift
      git mv "$src" "$dst" &&
      mv "$dst" "$src" &&
      svn mv "$src" "$dst"
      ;;
    ci)
      msg="$1"; shift
      git ca -m "$msg"
      svn ci -m "$msg"
      ;;
    add)
      git add $@
      svn add $@
      set --
      ;;
    tagversion)
      gitversion="$1"
      shift
      git tag "$gitversion"
      ;;
    version)
      version="$1"
      shift
      if [ -n "$version" ]; then
          ex -c "/^VERSION *=/s/=.*/= $version/|:wq" Makefile
          make $name.cabal
          $0 showVersion
      else
          echo "Need to specify a version" >&2
          exit 1
      fi
      ;;
    showVersion)
      echo $version
      ;;
    *)
      echo "What does '$cmd' mean?" >&2
      exit 1
      ;;
  esac
done