#!/bin/sh # # error() { echo "$1" exit 2 } # help() { cat <<HELP mktgz -- make a tar.gz package from a number of file USAGE: mktgz packagename directory [directory2 ...] mktgz opens a dialog box where you can select the file from the directory which should be included in the tar.gz file The directory should be a relative path. mktgz, copyright gpl, http://linuxfocus.org/English/November2002 HELP exit 0 } # parse command line: while [ -n "$1" ]; do case $1 in -h) help;shift 1;; # function help is called --) shift;break;; # end of options -*) echo "error: no such option $1. -h for help";exit 1;; *) break;; esac done [ -z "$2" ]&& help pack="$1" shift dirs="$*" if echo " $dirs" | fgrep " .." > /dev/null; then error "You should not include directories which are lower in the tree than the current working directory" fi tempfile=/tmp/mktgz.$$ trap "rm -f $tempfile" 1 2 5 15 Xdialog --title "$pack.tar.gz" --separate-output --checklist "tick the files which should be included into the package $pack.tar.gz" 0 0 12 `find $dirs -maxdepth 1 -type f -printf "%p size=%kK OFF \n"` 2> $tempfile rval="$?" # if [ "$rval" = "0" ]; then echo "running tar -zcvf $pack.tar.gz ..." tar -zcvf "$pack.tar.gz" `cat $tempfile` else echo "Cancel..." fi rm -f $tempfile # end of mktgz