Dotfiles/site-modules/core/files/oh-my-zsh/custom/compress.zsh
Ade Attwood 80239af169 refactor(core): start to make dotfiles public
This is the first commit that brings the privet dotfiles to a public
reop previously this was all one puppet module. Now this has been split
out so I can put all of the private files in a private puppet module
2020-09-20 06:22:17 +01:00

38 lines
802 B
Bash

function compress() {
local compression_type="gz"
if (( $# == 0 )); then
cat <<-'EOF' >&2
Usage: compress [-option] [file ...]
Options:
-t, --type The compression tool you would like use to compress the target
EOF
fi
if [[ "$1" == "-t" ]] || [[ "$1" == "--type" ]]; then
compression_type="$1"
shift
fi
while (( $# > 0 )); do
if [[ ! -f "$1" ]] && [[ ! -d "$1" ]]; then
echo "compress: '$1' is not a valid file or directory" >&2
shift
continue
fi
success=0
if [[ "$compression_type" == 'gz' ]] && [[ -d "$1" ]]; then
tar -czvf "$1.tar.gz" $1
fi
if [[ "$compression_type" == 'gz' ]] && [[ -f "$1" ]]; then
gzip $1
fi
(( success = $success > 0 ? $success : $? ))
shift
done
}