Browse Source

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.)
Dave Gauer 4 years ago
parent
commit
d560c41b59
2 changed files with 25 additions and 20 deletions
  1. 11 11
      patches/eowyn.sh
  2. 14 9
      patches/gollum.sh

+ 11 - 11
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

+ 14 - 9
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