#!/bin/bash

usage()
{
cat << EOF
`basename $0` (c) 1999-2002 Salmaso Raffaele, 2019-2023 PaulTT

  usage: `basename $0` [option] dir1 [dir2 ...]
    - option can be:
        --gz  = use gzip
        --bz2 = use bzip2
        --zip = use zip
	--tgz = use tar.gz
	--tz2 = use tar.bz2 (default, can be omitted)
	--tar = use tar
	--7z  = use 7z

Create a tar file and (optionally) compress it with bzip2 or gzip
EOF
}

EXT=tz2

case $1 in
	"--gz")
		EXT=gz
		shift 1
	;;
	"--zip")
		EXT=zip
		shift 1
	;;
	"--xpi")
		EXT=xpi
		shift 1
	;;
	"--tgz")
		EXT=tgz
		shift 1
	;;
	"--bz2")
		EXT=bz2
		shift 1
	;;
	"--tz2")
		EXT=tz2
		shift 1
	;;
	"--tar")
		EXT=tar
		shift 1
	;;
	"--7z")
		EXT=7z
		shift 1
	;;
	""|"-h"|"--help")
		usage
		exit 0
	;;
esac

export IFS=$'\n\t'

for pkg in $@
do
	echo "$pkg"
	pkgname=`basename "$pkg"`
	case $EXT in
		zip)	zip -r $pkgname.zip "$pkg" ;;
		xpi)	cd "$pkg" && zip -r $pkgname.xpi * ;;
		tgz)	tar c "$pkg" | gzip > $pkgname.tar.gz ;;
		tz2)	tar c "$pkg" | bzip2 > $pkgname.tar.bz2 ;;
		gz)	gzip "$pkg" ;;
		bz2)	nice -n +20 bzip2 "$pkg" ;;
		tar)	tar c "$pkg" > $pkgname.tar;;
		7z)	nice -n +20 7z a "$pkgname".7z "$pkg" ;;
	esac
done

echo -e "\07"
notify-send "`basename $0`" "Compression of $pkgname to $EXT Completed." &

