#!/bin/sh BASEDIR=$HOME/src/clisp TARGET=/var/www/src DEBUG=${DEBUG:-0} package=$1 canbuild=0 dosign=1 setversion=0 tarversion=0 dodebug () { if [ $DEBUG = 1 ] then echo "DEBUG: $*" fi } tarname () { if [ $tarversion = 0 ] then echo $package.tar.gz else echo $package-$version.tar.gz fi } printhelp () { echo "$0: build an ASDF package" echo " options:" echo " -v Use as the version number" echo " -s Don't sign the resulting package" echo " -t Tarball has version number" echo "Usage: $0 [-s] [-v ] " } while [ $(echo ${1:-x} | cut -c1) = "-" ] do case $1 in -v) version=$2; setversion=1 shift 2 ;; -s) dosign=0 ; shift ;; -t) tarversion=1; shift ;; -[h?]) printhelp ; exit 0 ;; *) echo "Unknown option, $1"; printhelp; exit 1 ;; esac done package=$1 if [ ! -d $BASEDIR/$package ] then echo "No suitable source directory found for $package" echo printhelp exit 2 fi cd $BASEDIR/$package if [ -r .filelist ] then dodebug "Found file list" canbuild=1 fi dodebug "canbuild is $canbuild" if [ $setversion = 1 ] then dodebug "Forcing version" echo $version > .version fi if [ -r .version ] then dodebug "Version found" canbuild=$(( $canbuild + 2 )) version=$(cat .version) fi dodebug "canbuild is $canbuild" if [ $canbuild != 3 ] then echo "Either the file list (in .filelist) or the version (in .version)" echo "is missing, aborting packaging." exit 3 fi dumpdir="${package}_${version}" dodebug "dumpdir is $dumpdir" files=$(sed -e "s%^%$dumpdir/%" .filelist) cd $BASEDIR if [ ! -d $dumpdir ] then ln -s $package $dumpdir fi dodebug "files is $files" chmod 644 $files tar czf $TARGET/$(tarname) $files rm $dumpdir if [ $dosign = 1 ] then cd $TARGET gpg -sa $(tarname) fi if [ $tarversion = 1 ] then cd $TARGET tarball=$(tarname) tarversion=0 plain=$(tarname) rm -f $plain rm -f ${plain}.asc ln -s $tarball $plain if [ $dosign = 1 ] then ln -s ${tarball}.asc ${plain}.asc fi fi