aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xziglings31
1 files changed, 30 insertions, 1 deletions
diff --git a/ziglings b/ziglings
index 7c2f6a1..a5fa8d4 100755
--- a/ziglings
+++ b/ziglings
@@ -17,6 +17,35 @@ fmt_err=$( tput setaf 1 ) # red foreground
fmt_yay=$( tput setaf 2 ) # green foreground
fmt_off=$( tput sgr0 ) # reset colors/effects
+zig_cmd=zig
+zig_minimum_version="0 8 0 1065"
+zig_version=$($zig_cmd version 2>/dev/null)
+
+if [[ "$zig_version" =~ ([0-9]+)\.([0-9]+)\.([0-9]+)-dev\.([0-9]+) ]]
+then
+ match_idx=1 # regex matches start at index 1
+
+ for v in $zig_minimum_version
+ do
+ if [[ ${BASH_REMATCH[$match_idx]} -lt $v ]]
+ then
+ echo "Your current Zig version is $zig_version."
+ echo "Please update your zig compiler to a version >=$(echo "${zig_minimum_version// /.}") "`
+ `"or change \$zig_cmd in ./ziglings to the appropriate path."
+ exit 1
+ fi
+ match_idx=$((match_idx+1))
+ done
+elif [[ -z $zig_version ]]
+then
+ echo "Ziglings failed to determine your Zig version."
+ echo "Please check if \$zig_cmd in ./ziglings matches the zig executable in your PATH."
+ exit 1
+else
+ echo "Sorry, Zig version number '${zig_version}' is not in the expected format for a current development build."
+ exit 1
+fi
+
exercise_num=0
function check_it {
@@ -32,7 +61,7 @@ function check_it {
fi
# Compile/run the source and capture the result and exit value
- cmd="zig run $source_file"
+ cmd="$zig_cmd run $source_file"
echo "$ $cmd"
result=$($cmd 2>&1)
result_status=$?