123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #!/bin/bash
- #
- # "How do you pick up the threads of an old life?
- # How do you go on, when in your heart you begin
- # to understand... there is no going back?
- # There are some things that time cannot mend.
- # Some hurts that go too deep, that have taken hold."
- # Frodo, The Return of the King
- #
- #
- # This script shall repair the patches for the little
- # broken programs using the old patches in this directory
- # first, to heal them and then create new and better
- # patches, with Gollum's help.
- #
- set -e
- # We check ourselves before we wreck ourselves.
- if [ ! -f patches/frodo.sh ]
- then
- echo "But I must be run from the project root directory."
- exit 1
- fi
- # Create directory of answers if it doesn't already exist.
- mkdir -p answers
- # Cycle through all the little broken Zig applications.
- i=0
- for broken in exercises/*.zig
- do
- ((i=i+1))
- # Remove the dir and extension, rendering the True Name.
- true_name=$(basename "$broken" .zig)
- patch_name="patches/patches/$true_name.patch"
- healed_name="answers/$true_name.zig"
- cp "$broken" "$healed_name"
- # echo "$patch_name"
- if [ -f "$patch_name" ]
- then
- # 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 -i "$patch_name" "$healed_name"
- # Create new prescriptions...
- echo Repairing "$patch_name"...
- if [ "$true_name.patch" = "999_the_end.patch" ]
- then
- i=999
- fi
- # with gollum's help!
- ./patches/gollum.sh $i
- else
- echo Cannot repair "$true_name". No patch found.
- fi
- done
|