Patch/test scripts now run from project root

This simplifies everything and makes everything good.

(Shell scripts need to be as simple as possible for maximum
compatibility.)
This commit is contained in:
Dave Gauer 2021-03-12 19:59:17 -05:00
parent 2e99488b0e
commit 83e235cf1b
2 changed files with 25 additions and 20 deletions

View File

@ -13,19 +13,22 @@
# to convalesce in the healed directory.
#
# We run from the patches dir. Go there now if not already.
cd $(dirname $(realpath $0))
pwd # Show it upon the screen so all shall be made apparent.
# We check ourselves before we wreck ourselves.
if [ ! -f 'patches/eowyn.sh' ]
then
echo "But I must be run from the project root directory."
exit 1
fi
# Create healed/ directory here if it doesn't already exist.
mkdir -p healed
# Create directory of healing if it doesn't already exist.
mkdir -p patches/healed
# Cycle through all the little broken Zig applications.
for broken in ../exercises/*.zig
for broken in exercises/*.zig
do
# Remove the dir and extension, rendering the True Name.
true_name=$(basename $broken .zig)
patch_name="patches/$true_name.patch"
patch_name="patches/patches/$true_name.patch"
if [ -f $patch_name ]
@ -33,14 +36,11 @@ do
# Apply the bandages to the wounds, grow new limbs, let
# new life spring into the broken bodies of the fallen.
echo Healing $true_name...
patch --output=healed/$true_name.zig $broken $patch_name
patch --output=patches/healed/$true_name.zig $broken $patch_name
else
echo Cannot heal $true_name. No patch found.
fi
done
# Return to the home of our ancestors.
cd ..
# Test the healed exercises. May the compiler have mercy upon us.
zig build -Dhealed

View File

@ -6,18 +6,23 @@
# Gollum, The Hobbit, or There and Back Again
#
cd $(dirname $(realpath $0))
f=$(basename ../exercises/$1*.zig .zig 2> /dev/null)
b=../exercises/$f.zig
a=../answers/$f.zig
p=patches/$f.patch
if [ ! -f 'patches/gollum.sh' ]
then
echo "We must be run from the project root dir, precious!"; exit 1
fi
printf "\tf: '$f'\n\tb: '$b'\n\ta: '$a'\n"
ex=$(printf "%03d" $1)
echo "Nassssty exercise $ex..."
if [ ! -f $b ]; then echo "We hates it!"; exit 1; fi
if [ ! -f $a ]; then echo "Where is it? Where is the answer, precious?"; exit; fi
f=$(basename exercises/${ex}_*.zig .zig 2> /dev/null)
b=exercises/$f.zig
a=answers/$f.zig
p=patches/patches/$f.patch
echo Hisssss!
if [ ! -f $b ]; then echo "No $f! We hates it!"; exit 1; fi
if [ ! -f $a ]; then echo "No $a! Where is it? Where is the answer, precious?"; exit; fi
echo "Hissss!\tbefore: '$b'\n\t after: '$a'\n\t patch: '$p'\n"
diff $b $a > $p