Regarding use of `temp-test-ioccc` in current repo files: We will ignore files under `tmp/` as they are going away. We will ignore files under `bin/` as they will have their default `REPO_URL` value changed during the later parts of the **Great Fork Merge**. We will ignore `*.html` files as the above changes to `bin/` tool will also change them during the later parts of the **Great Fork Merge**. We will ignore `sitemap.xml` as the it will change during the later parts of the **Great Fork Merge**. So this leaves for our consideration the files printed by this command: ```sh find * -type f ! -name '*.html' ! -name sitemap.xml ! -path 'tmp/*' ! -path 'bin/*' -print0 | xargs -0 grep -l 'temp-test-ioccc' ``` We see 5 (3 sir), 3 cases: * README.md index.md The reference to `temp-test-ioccc` will be removed when a given section goes away as part of the later parts of the **Great Fork Merge**. Nothing needs to be dome here other than to add some **XXX** comments to help remind us of what needs to be done in later parts of the **Great Fork Merge**. * bugs.md faq.md news.md var.mk The use of `temp-test-ioccc` is outside of a blob. Here `https://github.com/ioccc-src/temp-test-ioccc/` may be be replaced by `https://github.com/ioccc-src/winner/` in anticipation of the **Great Fork Merge**. There is an exception: The historic discussion abouts the history of the `temp-test-ioccc` repo needs to retain their `https://github.com/ioccc-src/temp-test-ioccc/` strings in `faq.md` and `news.md`. * 2005/sykes/README.md The markdown links that start with `https://github.com/ioccc-src/temp-test-ioccc/blob/master/` should instead start with `%%REPO_URL%%/`. After the **Great Fork Merge**, the `%%REPO_URL%%/` value will refer to `https://github.com/ioccc-src/winner/blob/master/` instead. * 2020/ferguson1/snake.1 There is not a tool to "pre-process" cat pages like there is for markdown files: no should there be. The cat page refers to a markdown file when instead it should refer to a HTML page. In this case we suggest that `https://github.com/ioccc-src/temp-test-ioccc/blob/` be replaced by `https://www.isthe.com/`, and `.md` be replaced by `.html` in anticipation of what it will need to be after the **Great Fork Merge**. * YYYY/entry_dir/*.sh The shell scripts references by the above command are "helper shell scripts. Like man pages, there is no "pre-processor" for shell scripts, nor should there be. Looking at these helper shell script files in detail: ```sh find * -name '*.sh' ! -path 'tmp/*' ! -path 'bin/*' -print0 | xargs -0 grep 'temp-test-ioccc/blob/master' ``` We see that they all make references to `faq.md#something.`. This is wrong in 2 ways: 0) They should not refer to the markdown file `faq.md` but rather to the HTML file `faq.html`. 1) They punctuate a literal string (with one exception) by adding a final period (".") to a string that requires somebody to copy and paste and exclude the final period ("."). Since these echo commands are suggesting that the user view something within the FAQ, we recommend that `echo "Tip: see https://github.com/ioccc-src/temp-test-ioccc/blob/master/faq.md#` be replaced by `echo "Tip: see https://www.ioccc.org/faq.html#` AND that the final period (".") be removed. Thus they too will anticipate what they will need to be after the **Great Fork Merge**.
84 lines
3.2 KiB
Bash
Executable File
84 lines
3.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# try.sh - demonstrate IOCCC entry 2020/kurdyukov2
|
|
#
|
|
|
|
# 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.
|
|
[[ -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 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 "Tip: visit: https://www.ioccc.org/faq.html#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
|
|
}
|
|
|
|
# remove ppm files that we create
|
|
rm -f random.ppm output.ppm
|
|
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
|
|
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?
|
|
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
|
|
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: "
|
|
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
|
|
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
|
|
echo 1>&2
|
|
read -r -n 1 -p "Press any key to create GIF: "
|
|
echo 1>&2
|
|
echo "$ $CONVERT -delay 10 -dither none -loop 0 $(find . -maxdepth 1 -type f -name '*jpg' | sort -V) $(find . -maxdepth 1 -type f -name '*jpg' | sort -rV) +map out.gif" 1>&2
|
|
# We want word splitting here so disable shellcheck warning SC2046.
|
|
#
|
|
# SC2046 (warning): Quote this to prevent word splitting.
|
|
# https://www.shellcheck.net/wiki/SC2046
|
|
# shellcheck disable=SC2046
|
|
"$CONVERT" -delay 10 -dither none -loop 0 $(find . -maxdepth 1 -type f -name '*jpg' | sort -V) $(find . -maxdepth 1 -type f -name '*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
|
|
|
|
read -r -n 1 -p "Press any key to run: ./makegif.sh sample.jpg kurdyukov2.gif ./prog: "
|
|
echo 1>&2
|
|
./makegif.sh sample.jpg kurdyukov2.gif ./prog
|
|
echo 1>&2
|
|
else
|
|
echo 1>&2
|
|
echo "Could not fine convert(1) from ImageMagick." 1>&2
|
|
echo "Tip: visit: https://www.ioccc.org/faq.html#imagemagick" 1>&2
|
|
echo 1>&2
|
|
fi
|