#!/bin/sh package='tufte-latex' class='tufte-handout.cls' # Exit on first error: set -e # Verify prerequisites: if test $# -ne 1 then echo "Usage: $0 VERSION" exit 1 fi version=$1 if ! echo $version | grep -E "^[0-9]+\.[0-9]+\.[0-9]+$" then echo "VERSION should be of the form 1.2.5 (major.minor.revision)" exit 1 fi if ! grep -q $version $class then echo "Error: version skew. '$version' does not match that in class" grep -H ProvidesClass $class exit 1 fi if ! grep -q $version History.txt then echo "Error: no release notes for '$version' found in History.txt" grep -H $version History.txt exit 1 fi class_date=`date +%Y/%m/%d` # (with slashes) if ! grep -q $class_date $class then echo "Error: date skew. '$class_date' does not match that in class" grep -H ProvidesClass $class exit 1 fi history_date=`date +%Y-%m-%d` # (with dashes) if ! grep -q $history_date History.txt then echo "Error: '$history_date' not found in History.txt" grep -H $history_date History.txt exit 1 fi # Refresh sample document pdflatex sample-handout > refresh-sample.log bibtex sample-handout >> refresh-sample.log pdflatex sample-handout >> refresh-sample.log pdflatex sample-handout >> refresh-sample.log rm -f sample-handout.{aux,log,out,blg,bbl} refresh-sample.log # To ease googlecode upload, make a distinct version of sample-handout: cp sample-handout.pdf sample-handout-$version.pdf # Make bundle for Google Code release mkdir -p pkg/$package-$version tar cf - `cat Manifest.txt` | ( cd pkg/$package-$version && tar xf - ) ( cd pkg && zip -rq $package-$version.zip $package-$version ) # Make bundle for CTAN release TDS_DIR=pkg/$package/tds/ TDS_TEX_DIR=$TDS_DIR/tex/latex/$package/ TDS_DOC_DIR=$TDS_DIR/doc/latex/$package/ TDS_SRC_DIR=$TDS_DIR/source/latex/$package/ mkdir -p $TDS_DIR $TDS_TEX_DIR $TDS_DOC_DIR $TDS_SRC_DIR cp tufte-handout.cls $TDS_TEX_DIR/ cp History.txt README.txt sample-handout.{pdf,tex,bib} $TDS_DOC_DIR/ mkdir $TDS_DOC_DIR/graphics cp graphics/* $TDS_DOC_DIR/graphics/ cp tufte-handout.cls sample-handout.{tex,bib} $TDS_SRC_DIR/ ( cd $TDS_DIR && zip -rq ../../$package-$version/$package.tds.zip * ) rm -fr pkg/$package mv pkg/$package-$version pkg/$package ( cd pkg && zip -rq $package.zip $package ) # Remove our temporary files rm -fr pkg/$package # Provide some cut-n-paste material for manual steps: cat << MESSAGE `openssl dgst -sha1 pkg/$package-$version.zip` Don't forget to create an SVN tag (after committing changes), svn cp -m'To tag release $version.' \\ https://$package.googlecode.com/svn/trunk \\ https://$package.googlecode.com/svn/tags/rel_$version and upload the zip file, http://code.google.com/p/$package/downloads/list http://ctan.org/upload MESSAGE