Use heredocs, smarter check for cowsay

This commit is contained in:
Jan Alexander Steffens (heftig) 2012-03-12 02:34:00 +01:00
parent de9446ef97
commit ae5e1176fe

44
ponysay
View file

@ -6,16 +6,6 @@ HOMEPONIES="${HOME}/.ponies"
pony="*"
wrap=
if [[ -f `which cowsay` ]];
then
true
else
echo "You don't seem to have the cowsay program."
echo "Please install it in order to use this wrapper."
echo -n "(Or symlink it to 'cowsay' in anywhere in \$path "
echo "if it actually exists under a different filename."
exit;
fi
cmd=cowsay
[[ ${0} == *ponythink ]] && cmd=cowthink
@ -25,16 +15,19 @@ version() {
usage() {
version
echo -e "\nUsage:"
echo "${0##*/} [options] [message]"
echo
echo "If [message] is not provided, reads the message from STDIN"
echo
echo "Options:"
echo " -v Show version and exit"
echo " -h Show this help and exit"
echo " -f[name] Select a pony (Either a filename or a pony name)"
echo " -W[column] The screen column where the message should be wrapped"
cat <<EOF
Usage:
${0##*/} [options] [message]
If [message] is not provided, reads the message from STDIN
Options:
-v Show version and exit
-h Show this help and exit
-f[name] Select a pony (Either a filename or a pony name)
-W[column] The screen column where the message should be wrapped
EOF
}
say() {
@ -56,6 +49,17 @@ do
done
shift $((OPTIND - 1))
if ! hash $cmd &>/dev/null; then
cat >&2 <<EOF
You don't seem to have the $cmd program.
Please install it in order to use this wrapper.
Alternatively, symlink it to '$cmd' in anywhere in \$PATH
if it actually exists under a different filename.
EOF
exit 1
fi
if [[ ! -f $pony ]]; then
# Pony not a file? Search for it