ImageGrid/scripts/compress-archive.sh
Alex A. Naanou 1e095bf53a minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2018-05-13 00:37:40 +03:00

89 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# TODO make this runnable from anywhere...
# - prepend paths with './' only if local/relative
BASE_PATH=.
ARCH_BZIP2='bzip2 -v {}'
ARCH_GZIP='gzip -v {}'
# XXX should we cygpath -w all the inputs???
ARCH_NTFS='compact /c /exe:lzx {}'
# default...
ARCH=$ARCH_NTFS
EXT=ARW
# HACK: this is here to avoid using windows find...
PATH=/bin:$PATH
printhelp(){
echo "Usage: `basename $0` [ARGUMENTS] [PATH]"
echo
echo "Arguments:"
echo " -h --help - print this help and exit."
echo
echo " -bz -bzip2 - use bzip2 to compress (default)."
echo " -gz -gzip - use gzip to compress."
echo " -c -compact - use ntfs compression."
echo
echo " -ext EXT - set file extension to compress (default: ARW)"
echo " NOTE: only one -ext is supported now".
echo
}
# process args...
while true ; do
case $1 in
-h|--help)
printhelp
exit
;;
# archivers...
-bz|--bzip2)
ARCH=$ARCH_BZIP2
shift
;;
-gz|--gzip)
ARCH=$ARCH_GZIP
shift
;;
-c|--compact)
ARCH=$ARCH_NTFS
shift
;;
# extension to compress...
--ext)
EXT=$2
shift
shift
;;
*)
break
;;
esac
done
# get path...
if [ "$1" ] ; then
BASE_PATH=$1
fi
# do the work...
find "$BASE_PATH" -name \*.${EXT} -exec ${ARCH} \;
# vim:set nowrap nospell :