mirror of
https://codeberg.org/ziglings/exercises.git
synced 2024-12-26 01:20:30 +00:00
d560c41b59
This simplifies everything and makes everything good. (Shell scripts need to be as simple as possible for maximum compatibility.)
46 lines
1.3 KiB
Bash
Executable file
46 lines
1.3 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# "I will be a shieldmaiden no longer,
|
|
# nor vie with the great Riders, nor
|
|
# take joy only in the songs of slaying.
|
|
# I will be a healer, and love all things
|
|
# that grow and are not barren."
|
|
# Éowyn, The Return of the King
|
|
#
|
|
#
|
|
# This script shall heal the little broken programs
|
|
# using the patches in this directory and convey them
|
|
# to convalesce in the healed directory.
|
|
#
|
|
|
|
# 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 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
|
|
do
|
|
# Remove the dir and extension, rendering the True Name.
|
|
true_name=$(basename $broken .zig)
|
|
patch_name="patches/patches/$true_name.patch"
|
|
|
|
|
|
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 --output=patches/healed/$true_name.zig $broken $patch_name
|
|
else
|
|
echo Cannot heal $true_name. No patch found.
|
|
fi
|
|
done
|
|
|
|
# Test the healed exercises. May the compiler have mercy upon us.
|
|
zig build -Dhealed
|