From 77a65587ff51fd1f82674f709d4f95385852a847 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Thu, 1 Feb 2024 04:26:05 -0800 Subject: [PATCH] Fix 2020/kurdyukov2 make clobber, .gitignore, try --- 2020/kurdyukov2/.gitignore | 3 +++ 2020/kurdyukov2/Makefile | 2 +- 2020/kurdyukov2/try.sh | 40 ++++++++++++++++++++++++++++---------- 3 files changed, 34 insertions(+), 11 deletions(-) diff --git a/2020/kurdyukov2/.gitignore b/2020/kurdyukov2/.gitignore index c0386c02b..949edd684 100644 --- a/2020/kurdyukov2/.gitignore +++ b/2020/kurdyukov2/.gitignore @@ -1,6 +1,9 @@ # # sort with: sort -d -u *.dSYM +*.jpg +*.gif +*.ppm indent indent.c indent.o diff --git a/2020/kurdyukov2/Makefile b/2020/kurdyukov2/Makefile index 709cfd3e2..355d9fc65 100644 --- a/2020/kurdyukov2/Makefile +++ b/2020/kurdyukov2/Makefile @@ -212,7 +212,7 @@ clean: clobber: clean ${RM} -f ${TARGET} ${ALT_TARGET} - ${RM} -rf *.dSYM + ${RM} -rf *.dSYM *.gif *.ppm out*.jpg @-if [ -e sandwich ]; then \ ${RM} -f sandwich; \ echo 'ate sandwich'; \ diff --git a/2020/kurdyukov2/try.sh b/2020/kurdyukov2/try.sh index 3c5a2d384..3af7f101a 100755 --- a/2020/kurdyukov2/try.sh +++ b/2020/kurdyukov2/try.sh @@ -6,18 +6,26 @@ # 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 +[[ -z "$CC" || ! -f "$CC" || ! -x "$CC" ]] && CC="cc" make CC="$CC" all >/dev/null || exit 1 # clear screen after compilation so that only the entry is shown clear -# try finding convert(1) from ImageMagick -CONVERT="$(type -P convert)" +# try finding convert(1) from ImageMagick if CONVERT not passed to script or is +# not an executable file +[[ -z "$CONVERT" || ! -f "$CONVERT" || ! -x "$CONVERT" ]] && CONVERT="$(type -P convert)" +convert_error() +{ + echo 1>&2 + echo "Warning: $CONVERT failed to generate out.gif. Is $CONVERT convert(1) from ImageMagick?" 1>&2 + echo "See: https://github.com/ioccc-src/temp-test-ioccc/blob/master/faq.md#imagemagick." 1>&2 + echo 1>&2 + echo "Tip: if you have it in a different path, try: CONVERT=path ./try.sh" 1>&2 + echo 1>&2 +} echo "$ (echo P6 1024 1024 255; dd if=/dev/urandom bs=3M count=1) > random.ppm" 1>&2 (echo P6 1024 1024 255; dd if=/dev/urandom bs=3M count=1) > random.ppm @@ -25,10 +33,10 @@ echo "Look at random.ppm. Do you see any patterns?" 1>&2 read -r -n 1 -p "Press any key to continue: " echo 1>&2 # Look at random.ppm. Do you see any patterns? -echo "$ ./prog_ppm 1000 random.ppm output.ppm" 1>&2 +read -r -n 1 -p "Press any key to run: ./prog_ppm 1000 random.ppm output.ppm: " +echo 1>&2 ./prog_ppm 1000 random.ppm output.ppm echo 1>&2 -# See which patterns the program has found echo "Now open output.ppm. What patterns has the program found?" 1>&2 echo 1>&2 read -r -n 1 -p "Press any key to continue: " @@ -36,7 +44,10 @@ echo 1>&2 echo "$ for i in 0001 0002 0004 0008 0016 0032 0064 0128 0256 0512 1024 2048 4096 8192 ; do ./prog $i sample.jpg out$i.jpg; done" 1>&2 -for i in 0001 0002 0004 0008 0016 0032 0064 0128 0256 0512 1024 2048 4096 8192 ; do ./prog "$i" sample.jpg "out$i".jpg; done +for i in 0001 0002 0004 0008 0016 0032 0064 0128 0256 0512 1024 2048 4096 8192 ; do + read -r -n 1 -p "Press any key to run: ./prog $i sample.jpg out$i.jpg: " + echo 1>&2 + ./prog "$i" sample.jpg "out$i".jpg; done echo "Now flip through out*.jpg and see when you start to recognise the image." 1>&2 if [[ -n "$CONVERT" ]]; then @@ -45,7 +56,16 @@ if [[ -n "$CONVERT" ]]; then echo 1>&2 echo "$ $CONVERT -delay 10 -dither none -loop 0 $(ls out*.jpg | sort -V) $(ls out*.jpg | sort -rV) +map out.gif" 1>&2 "$CONVERT" -delay 10 -dither none -loop 0 $(ls out*.jpg | sort -V) $(ls out*.jpg | sort -rV) +map out.gif + if [[ ! -f out.gif ]]; then + convert_error + else + echo 1>&2 + echo "Now look at out.gif with a graphics viewer that can show animated GIFs." 1>&2 + echo "Warning: includes flashing colours." 1>&2 + fi +else + echo 1>&2 + echo "Could not fine convert(1) from ImageMagick." 1>&2 + echo "See: https://github.com/ioccc-src/temp-test-ioccc/blob/master/faq.md#imagemagick." 1>&2 echo 1>&2 - echo "Now look at out.gif with a viewer that can show animation." 1>&2 - echo "Warning: includes flashing colours." 1>&2 fi