Subversion Repositories DevTools

Rev

Blame | Last modification | View Log | RSS feed

#!/bin/sh
#set -x

USAGE="Usage: make_tarzip archive pkgname pkgversion"
case "$1" in
  -h*|--h*)     echo "$USAGE"; exit 0 ;;
esac
if [ $# != 3 ]; then
  echo "$USAGE" 1>&2
  exit 100
fi

# Log operations
LOGDIR=/home/releasem/logs
LOGFILE=`date +release.%Y.%m.%d.log`
mkdir -p $LOGDIR
echo `date` " make_tarzip $1 $2 $3" >> $LOGDIR/$LOGFILE

#
#   Only support dpkg_acrhive
#
case "$1" in
  dpkg_archive)         ARCHIVE="/export/devl/dpkg_archive" ;;
  *)                    echo "$0: Invalid archive: $1" 1>&2
                        exit 101
                        ;;
esac

if [ "`echo $2 | sed 's/[A-Za-z][-_A-Za-z0-9]*/x/'`" != "x" ]; then
  echo "$0: Invalid package name: $2" 1>&2
  exit 102
fi
if [ "`echo $3 | sed 's/[A-Za-z0-9][-_.A-Za-z0-9]*/x/'`" != "x" ]; then
  echo "$0: Invalid package version: $3" 1>&2
  exit 103
fi

# Validate the specified package
#
PKGDIR="$ARCHIVE/$2/$3"
if [ ! -d "$PKGDIR" ]; then
  echo `date` " make_tarzip $1 $2 $3. Not a directory: $PKGDIR" >> $LOGDIR/$LOGFILE
  echo "$0: Not a directory: $PKGDIR" 1>&2
  exit 105
fi

# Validate the output directory
#
OUTDIR=/export/devl/dpkg_archive/.dpkg_archive/tarStore
if [ ! -d $OUTDIR ] ; then
    echo `date` " make_tarzip $1 $2 $3. tarStore not found" >> $LOGDIR/$LOGFILE
    echo "$0: tarStore not found: $OUTDIR" 1>&2
    exit 106
fi

#
#   Generate the tarZip
#
OUTTAR="$OUTDIR/$2_$3.tgz"

tar -czf "$OUTTAR" -C "$ARCHIVE" "$2/$3"
eCode=$?
if [ $eCode != 0 ] ; then
    echo `date` " make_tarzip $1 $2 $3. Error in tar($eCode)" >> $LOGDIR/$LOGFILE
    echo "$0: Error in tar($eCode)" 1>&2
    exit 107
fi

exit 0