Add 1994/weisberg/try.sh and primes.sh

The primes.sh script is like 1985/august/primes.sh but it only acts on
reversed output (if rev(1) is installed) of the weisberg because
weisberg actually prints out primes so there's no point doing it without
reversing it. One can specify the number of lines to reverse (not how
many primes to show) by passing an arg to the script. The try.sh script
uses the default (15) and also 25.
This commit is contained in:
Cody Boone Ferguson committed 2024-01-15 11:04:29 -08:00
1 parent e5c062d27d
commit 2daa0822f6
4 files changed
+111 -2

No files matched your search

+40
View File
@@ -0,0 +1,40 @@
#!/usr/bin/env bash
#
# primes.sh - feed primes(1) IOCCC winner 1994/weisberg
#
# 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
PRIMES=$(type -P primes)
COUNT=15
if [[ "$#" -ge 1 ]]; then
COUNT="$1"
if ! [[ $COUNT =~ ^[0-9]+$ ]]; then
echo "not a number: $COUNT" 1>&2
exit 1
fi
fi
REV="$(type -P rev)"
if [[ -n "$PRIMES" && -n "$REV" ]]; then
read -r -n 1 -p "Press any key to find primes in ./weisberg | head -n $COUNT, reversed: "
echo 1>&2
while read -r n; do primes "$n" $((n + 1)); done < <((./weisberg | head -n "$COUNT" | "$REV" ))
else
echo "primes not installed" 1>&2
echo 1>&2
echo "See the following GitHub repo:" 1>&2
echo 1>&2
echo " https://github.com/vattam/BSDGames" 1>&2
echo 1>&2
echo "and after installing it try running this again."
exit 1
fi