Files

82 lines
2.9 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# try.sh - demonstrate IOCCC entry 2012/deckmyn
#
# make sure CC is set so that when we do make CC="$CC" it isn't empty. Doing it
# this way allows us to have the user specify a different compiler in an easy
# way.
if [[ -z "$CC" ]]; then
CC="cc"
fi
make CC="$CC" all >/dev/null || exit 1
# clear screen after compilation so that only the entry is shown
clear
read -r -n 1 -p "Press any key to show deckmyn.c (space = next page, q = quit): "
echo 1>&2
less -rEXF deckmyn.c
echo 1>&2
echo "$ ./deckmyn "\$\(cat deckmyn.c\)" "\$\(cat example_greensleeves\)" 2>/dev/null > greensleeves.pbm" 1>&2
read -r -n 1 -p "Press any key to continue: "
echo 1>&2
./deckmyn "$(cat deckmyn.c)" "$(cat example_greensleeves)" 2>/dev/null > greensleeves.pbm
echo 1>&2
echo "$ ./deckmyn "\$\(cat deckmyn.c\)" "\$\(cat example_beethoven\)" 2>/dev/null > beethoven.pbm" 1>&2
read -r -n 1 -p "Press any key to continue: "
echo 1>&2
./deckmyn "$(cat deckmyn.c)" "$(cat example_beethoven)" 2>/dev/null > beethoven.pbm
echo 1>&2
echo "$ ./deckmyn "\$\(cat deckmyn.c\)" \"sz sa x s1 x s1 x s1 x s1 x s1 \" 2>/dev/null > blank.pbm" 1>&2
read -r -n 1 -p "Press any key to continue: "
echo 1>&2
./deckmyn "$(cat deckmyn.c)" "sz sa x s1 x s1 x s1 x s1 x s1 " 2>/dev/null > blank.pbm
echo 1>&2
# Convert pbm files to png files if convert(1) is found in case the user does
# not have a viewer of pbm files. At the end we will check for png files to make
# sure that there was at least one conversion. If that does not happen as long
# as there are pbm files those will be listed instead. Otherwise something went
# wrong and we warn the user about it.
CONVERT="$(type -P convert)"
if [[ -n "$CONVERT" && -f "$CONVERT" && -x "$CONVERT" ]]; then
if [[ -f "greensleeves.pbm" ]]; then
if "$CONVERT" greensleeves.pbm greensleeves.png; then
echo "Converted greensleeves.pbm to greensleeves.png." 1>&2
fi
fi
if [[ -f "beethoven.pbm" ]]; then
if "$CONVERT" beethoven.pbm beethoven.png; then
echo "Converted beethoven.pbm to beethoven.png." 1>&2
fi
fi
if [[ -f "blank.pbm" ]]; then
if "$CONVERT" blank.pbm blank.png; then
echo "Converted blank.pbm to blank.png." 1>&2
fi
fi
fi
# Now tell the user to look at png files if any exist and otherwise any pbm
# files if any exist. If no files exist then something went wrong so show a
# warning message.
if [[ ! "$(find . -name '*.png')" ]]; then
echo "Now open the following files with your image viewer of choice:" 1>&2
echo 1>&2
find . -name '*.png' -printf " %p\n"
elif [[ ! "$(find . -name '*.pbm')" ]]; then
echo "Now open the following files with your image viewer of choice:" 1>&2
echo 1>&2
find . -name '*.pbm' -printf " %p\n"
else
echo "-=-=-" 1>&2
echo "Notice: failed to write any image files. Free free to fix and open a" 1>&2
echo "pull request against the GitHub repo." 1>&2
echo "-=-=-" 1>&2
fi