diff --git a/Documents/bin/tf b/Documents/bin/tf
index 070c7db6f816f510acc1b62dddb0697939c7e9a2..5ed12a9cc12271a0c5d4b4b7300a80f0acdbd94e 100755
--- a/Documents/bin/tf
+++ b/Documents/bin/tf
@@ -1,31 +1,47 @@
-#!/bin/sh
-set -eu
+#!/usr/bin/env python3
+"""Terraform wrapper to include a variable file is one exists that matches the workspace name"""  # noqa: E501
 
-# A wrapper for Terraform to include a variables file if one exists that matches
-# the workspace name (on commands that support that).
+import glob
+import os
+import pathlib
+import subprocess  # nosec
+import sys
 
-workspace="$(terraform workspace show)"
-if [ ! -f "$workspace.tfvars" ] && [ ! -d "$workspace" ]
-then
-    exec terraform "$@"
-fi
+TF_COMMANDS_TO_MODIFY = ["plan", "console", "import", "refresh"]
 
-for arg in "$@"
-do
-    if [ "$arg" = "plan" ] || [ "$arg" = "console" ] || [ "$arg" = "import" ] ||
-        [ "$arg" = "refresh" ]
-    then
-        additional_args=''
-        if [ -f "$workspace.tfvars" ]
-        then
-            additional_args="$additional_args -var-file=$workspace.tfvars"
-        fi
-        if [ -d "$workspace" ]
-        then
-            additional_args="$additional_args $(find "$workspace" -type f -name '*.tfvars' -exec printf '-var-file=%s ' {} \;)"
-        fi
-    fi
-done
 
-# shellcheck disable=SC2086
-exec terraform "$@" ${additional_args:-}
+def get_workspace():
+    """Return the Terraform workspace."""
+    proc = subprocess.run(  # nosec
+        ["terraform", "workspace", "show"],
+        capture_output=True,
+        check=True,
+        text=True,
+    )
+    return proc.stdout.strip()
+
+
+if __name__ == "__main__":
+    if len(sys.argv) == 1:
+        os.execlp("terraform", "terraform")  # nosec
+    for command in TF_COMMANDS_TO_MODIFY:
+        if command in sys.argv:
+            break
+    else:
+        args = sys.argv[:]
+        args[0] = "terraform"
+        os.execvp("terraform", args)  # nosec
+
+    args = sys.argv[:]
+    args[0] = "terraform"
+    command_index = args.index(command)
+    workspace = get_workspace()
+    var_file = pathlib.Path(f"{workspace}.tfvars")
+    var_dir = pathlib.Path(workspace)
+    if var_file.exists() and var_file.is_file():
+        args.insert(command_index + 1, f"-var-file={var_file}")
+    elif var_dir.exists() and var_dir.is_dir():
+        for var_file in glob.glob(f"{var_dir}/*.tfvars"):
+            args.insert(command_index + 1, f"-var-file={var_file}")
+    print(args, file=sys.stderr)
+    os.execvp("terraform", args)  # nosec