diff --git a/2012/deckmyn/.gitignore b/2012/deckmyn/.gitignore index 2ea892cd5..9b9af080d 100644 --- a/2012/deckmyn/.gitignore +++ b/2012/deckmyn/.gitignore @@ -1,15 +1,12 @@ # # sort with: sort -d -u -beethoven.pbm -blank.pbm *.dSYM deckmyn deckmyn.orig example_greensleeves -greensleeves.pbm indent indent.c indent.o -output.pbm +*.pbm +*.png prog.orig -sheetmusic.pbm diff --git a/2012/deckmyn/try.sh b/2012/deckmyn/try.sh index ef62403dc..cc1ef3566 100755 --- a/2012/deckmyn/try.sh +++ b/2012/deckmyn/try.sh @@ -15,26 +15,67 @@ 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 run deckmyn.c through less (space = next page, q = quit): " +read -r -n 1 -p "Press any key to show deckmyn.c (space = next page, q = quit): " echo 1>&2 -less deckmyn.c +less -rEXF deckmyn.c echo 1>&2 + echo "$ ./deckmyn "\$\(cat deckmyn.c\)" "\$\(cat example_greensleeves\)" 2>/dev/null > greensleeves.pbm" 1>&2 -./deckmyn "$(cat deckmyn.c)" "$(cat example_greensleeves)" 2>/dev/null > greensleeves.pbm +read -r -n 1 -p "Press any key to continue: " echo 1>&2 -echo "Now open greensleeves.pbm in your image viewer of choice." 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 "Now open beethoven.pbm in your image viewer of choice." 1>&2 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 "Now open blank.pbm in your image viewer of choice." 1>&2 +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 ake +# 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