mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-11-03 21:00:14 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			95 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			1.6 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`[[ $ARCH == $ARCH_BZIP2 ]] && echo " (default)" || echo ""`."
 | 
						|
	echo "	-gz -gzip	- use gzip to compress`[[ $ARCH == $ARCH_GZIP ]] && echo " (default)" || echo ""`."
 | 
						|
	echo "	-c -compact	- use ntfs compression`[[ $ARCH == $ARCH_NTFS ]] && echo " (default)" || echo ""`."
 | 
						|
	echo
 | 
						|
	echo "	-ext EXT	- set file extension to compress (default: ${EXT})"
 | 
						|
	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
 | 
						|
 | 
						|
# check if archiver exists...
 | 
						|
if ! which ${ARCH/ *} > /dev/null 2>&1 ; then
 | 
						|
	echo "$0: ${ARCH/ *}: command not found." >&2
 | 
						|
	exit 1
 | 
						|
fi
 | 
						|
 | 
						|
 | 
						|
# do the work...
 | 
						|
find "$BASE_PATH" -name \*.${EXT} -exec ${ARCH} \; \
 | 
						|
	&& echo done.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
# vim:set nowrap nospell :
 |