aboutsummaryrefslogtreecommitdiff
path: root/patches
diff options
context:
space:
mode:
Diffstat (limited to 'patches')
-rwxr-xr-xpatches/eowyn.sh22
-rwxr-xr-xpatches/gollum.sh23
2 files changed, 25 insertions, 20 deletions
diff --git a/patches/eowyn.sh b/patches/eowyn.sh
index f450c0e..1ff3f75 100755
--- a/patches/eowyn.sh
+++ b/patches/eowyn.sh
@@ -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
diff --git a/patches/gollum.sh b/patches/gollum.sh
index b693083..495aa44 100755
--- a/patches/gollum.sh
+++ b/patches/gollum.sh
@@ -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