82 lines
2.9 KiB
Bash
Executable File
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
|