#!/bin/sh # # mkarchive -- # create a archive with time-stamp # # Modified: # * 2000/01/03: use `date +%Y` as the number of year. # # Require: # gzip(bzip,jar),tar,date # # Usage: # mkarchive [-gzip|-bzip|-jar] [-C directory] # [-f archive-name] [-v] target-directory # # -gzip: use tar and gzip (default) # -bzip: use tar and bzip2 # -jar: use jar (java archiver) # -C: change directory # -f: archive name (default: target-directory-date.tar.gz) # -v: verbose mode TAR=tar GZIP=gzip BZIP=bzip2 JAR=jar SUFFIX="tar.gz" DATE=`date +%Y%m%d` TARGETDIR= PWD=`pwd` TMPDIR=. ARCHIVE= VERBOSE="no" while test "$1" != "" do case "$1" in "-h") echo "Copyright (C) 1999 Takaaki Tateishi" echo echo "mkarchive [-h] [-C directory] [-f archive-name]" echo " [-gzip|-bzip|-jar] [-T tmp-dir]" echo " target-directory " exit;; "-C") shift; PWD=$1; shift;; "-f") shift; ARCHIVE=$1; shift;; "-gzip") shift; SUFFIX="tar.gz";; "-bzip") shift; SUFFIX="tar.bz2";; "-jar") shift; SUFFIX="jar";; "-v") shift; VERBOSE="yes";; "-T") shift; TMPDIR=$1;; "-"*) echo "unknown option: \"$1\""; shift;; *) TARGET=$1; shift;; esac done TMP=$TMPDIR/archive-$DATE case "$TARGET" in */) echo "'/' is wrong"; exit;; ""|"."|"..") echo \"$TARGET\" : no such directory!; exit;; esac if test "$ARCHIVE" = "" then ARCHIVE=$TARGET-$DATE.$SUFFIX if test -f $ARCHIVE then NUM=1 ARCHIVE=$TARGET-$DATE-$NUM.$SUFFIX while test -f $ARCHIVE do NUM=`expr $NUM + 1` ARCHIVE=$TARGET-$DATE-$NUM.$SUFFIX done fi fi if test "$VERBOSE" = "yes" then echo "TAR = $TAR" echo "BZIP = $BZIP" echo "JAR = $JAR" echo "SUFFIX = $SUFFIX" echo "ARCHIVE = $ARCHIVE" echo "PWD = $PWD" echo "TMP = $TMP" echo -n "are you ready? [y/n]" read ans case $ans in "y"|"Y"|"yes");; *) exit;; esac fi case "$SUFFIX" in "tar.gz") $TAR -cf $TMP.tar -C $PWD $TARGET $GZIP $TMP.tar mv $TMP.tar.gz $ARCHIVE;; "tar.bz2") $TAR -cf $TMP.tar -C $PWD $TARGET $BZIP $TMP.tar mv $TMP.tar.bz2 $ARCHIVE;; "jar") $JAR -cf $ARCHIVE -C $PWD $TARGET;; esac