50 lines
690 B
Bash
Executable file
50 lines
690 B
Bash
Executable file
#!/bin/sh -e
|
|
|
|
usage()
|
|
{
|
|
echo "Usage: $0 [-x TWEAK-SCRIPT ] NAME VERSION (FILE | -C DIR)..."
|
|
}
|
|
|
|
script=:
|
|
while getopts x: opt
|
|
do
|
|
case $opt in
|
|
x)
|
|
script="$OPTARG"
|
|
;;
|
|
*)
|
|
usage; exit 1
|
|
;;
|
|
esac
|
|
done
|
|
shift $((OPTIND - 1))
|
|
|
|
name="$1"
|
|
version="$2"
|
|
if shift 2
|
|
then :
|
|
else usage; exit 1
|
|
fi
|
|
|
|
nv=$name-$version
|
|
mkdir "$nv"
|
|
|
|
# arrange cleanup
|
|
trap 'rm -rf "$nv"' 0
|
|
|
|
dir=.
|
|
until [ $# = 0 ]; do
|
|
if [ "$1" = -C ]; then
|
|
dir="$2"
|
|
if shift 2; then continue; fi
|
|
echo "$0: -C requires an argument" >&2
|
|
exit 1
|
|
fi
|
|
mkdir -p `dirname "$nv/$1"`
|
|
ln "$dir/$1" "$nv/$1"
|
|
shift
|
|
done
|
|
|
|
$script $name $version
|
|
|
|
tar -czf "$nv".tar.gz --owner=0 --group=0 --mode=ug+w,a+rX "$nv"
|