Add 2006/borsanyi/try.sh

The script runs in a loop until the user answers anything but 'y' or 'Y'
when asked if they wish to make another one. It does NOT check the valid
range of characters or the length. Instead it suggests one try and see
what happens if they do not follow the rules.

Updated .gitignore.
This commit is contained in:
Cody Boone Ferguson committed 2024-01-22 10:07:56 -08:00
1 parent bfc111cb80
commit 479f347a14
4 files changed
+58 -3

No files matched your search

+1 -1
View File
@@ -3,7 +3,7 @@
borsanyi
borsanyi.orig
*.dSYM
example.gif
*.gif
indent
indent.c
indent.o
+6 -1
View File
@@ -26,9 +26,14 @@ For more detailed information see [2006 borsanyi in bugs.md](/bugs.md#2006-borsa
## Try:
```sh
./borsanyi ioccc@example.com > example.gif
./try.sh
```
We recommend you input for the filename `example.gif` and for the string
`ioccc@example.com`. The script will not overwrite files. It runs the program in
a loop until you answer that you do not wish to make another.
## Judges' remarks:
+48
View File
@@ -0,0 +1,48 @@
#!/usr/bin/env bash
#
# try.sh - demonstrate IOCCC winner 2006/borsanyi
#
# 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
echo "When using this script, ask yourself what happens if you put a string > 42" 1>&2
echo "characters long and what happens if you input characters not in the regexp:" 1>&2
echo "'a-z_A-Z0-9@.-'." 1>&2
echo 1>&2
while :; do
read -r -p "Enter a target file name: " filename
if [[ -n "$filename" ]]; then
if [[ -f "$filename" ]]; then
echo "$0: ERROR: $filename already exists, will not overwrite." 1>&2
continue
fi
else
echo "$0: ERROR: empty file name, try again." 1>&2
continue
fi
read -r -p "Enter a string to write to the file: " email
if [[ -n "$email" ]]; then
./borsanyi "$email" > "$filename"
if [[ -f "$filename" ]]; then
echo "Wrote image to $filename" 1>&2
else
echo "$0: ERROR: failed to write to $filename" 1>&2
fi
fi
read -r -n 1 -p "Do you wish to make another one (Y/N)? "
if [[ "$REPLY" != "Y" && "$REPLY" != "y" ]]; then
break
fi
echo 1>&2
done