mirror of
https://github.com/msikma/pokesprite.git
synced 2026-03-21 17:54:23 -05:00
56 lines
1.0 KiB
Bash
Executable File
56 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
PROJECT="pokesprite/crush"
|
|
DESCRIPTION="Minimizes PNG files by running pngcrush."
|
|
SELF="crush.sh"
|
|
VERSION="1.0.0"
|
|
|
|
function check_prerequisites {
|
|
arr=('pngcrush')
|
|
for tool in "${arr[@]}"; do
|
|
if ! command -v $tool >/dev/null 2>&1; then
|
|
echo "$SELF: error: the '$tool' command is not available"
|
|
exit
|
|
fi
|
|
done
|
|
}
|
|
|
|
function crush {
|
|
pngcrush -ow -fix -force -nofilecheck -brute -rem alla -oldtimestamp "$1"
|
|
}
|
|
|
|
function crush_all {
|
|
for f in "$@"; do
|
|
if [ ${f: -4} != ".png" ]; then
|
|
continue
|
|
fi
|
|
if [ ! -f "$f" ]; then
|
|
echo "$SELF: error: can't find file: $f"
|
|
continue
|
|
fi
|
|
crush "$f"
|
|
done
|
|
}
|
|
|
|
function argparse {
|
|
if [[ ( -z "$1" ) || ( "$1" == "-h" ) ]]; then
|
|
echo "usage: $SELF [-v] [-h] [files...]"
|
|
if [ "$1" == "-h" ]; then
|
|
echo "$DESCRIPTION"
|
|
exit 0
|
|
fi
|
|
exit 1
|
|
fi
|
|
if [ "$1" == "-v" ]; then
|
|
echo "$PROJECT-$VERSION"
|
|
exit
|
|
fi
|
|
|
|
check_prerequisites
|
|
crush_all "$@"
|
|
}
|
|
|
|
if [[ "${BASH_SOURCE[0]}" = "${0}" ]]; then
|
|
argparse $@
|
|
fi
|