diff --git a/tests/scripts/quiet/cmake b/tests/scripts/quiet/cmake
index 4804637..10a0b25 100755
--- a/tests/scripts/quiet/cmake
+++ b/tests/scripts/quiet/cmake
@@ -11,60 +11,8 @@
 # VERBOSE_LOGS=1
 
 # don't silence invocations containing these arguments
-NO_SILENCE=" --version "
+export NO_SILENCE=" --version "
 
-TOOL=$(basename "$0")
+export TOOL="cmake"
 
-# Locate original tool
-ORIGINAL_TOOL=$(type -ap "${TOOL}" | grep -v -Fx "$0" | head -n1 )
-
-print_quoted_args() {
-    # similar to printf '%q' "$@"
-    # but produce more human-readable results for common/simple cases like "a b"
-    for a in "$@"; do
-        simple_pattern='^([[:alnum:]_+-]+=)?([[:alnum:] _=+-./:@]*)$'
-        if [[ $a =~ ' ' && $a =~ $simple_pattern ]]; then
-            # a has spaces, but no other special characters that need escaping
-            # (quoting after removing spaces yields no backslashes)
-            # simplify quoted form - e.g.:
-            #   a b        -> "a b"
-            #   CFLAGS=a b -> CFLAGS="a b"
-            q="${BASH_REMATCH[1]}\"${BASH_REMATCH[2]}\""
-        else
-            # get bash to do the quoting (which may result in no quotes or escaping,
-            # if none is needed).
-            q=$(printf '%q' "$a")
-        fi
-        printf "%s " "$q"
-    done
-}
-
-if [[ ! " $* " =~ " --version " ]]; then
-    # Display the command being invoked - if it succeeds, this is all that will
-    # be displayed. Don't do this for invocations with --version, because
-    # this output is often parsed by scripts, so we don't want to modify it.
-    printf %s "${TOOL} "
-    print_quoted_args "$@"
-    echo
-fi
-
-if [[ " $@ " =~ $NO_SILENCE || -n "${VERBOSE_LOGS}" ]]; then
-    # Run original command with no output supression
-    exec "${ORIGINAL_TOOL}" "$@"
-else
-    # Run original command and capture output & exit status
-    TMPFILE=$(mktemp "quiet-${TOOL}.XXXXXX")
-    "${ORIGINAL_TOOL}" "$@" > "${TMPFILE}" 2>&1
-    EXIT_STATUS=$?
-
-    if [[ $EXIT_STATUS -ne 0 ]]; then
-        # On error, display the full output
-        cat "${TMPFILE}"
-    fi
-
-    # Remove tmpfile
-    rm "${TMPFILE}"
-
-    # Propagate the exit status
-    exit $EXIT_STATUS
-fi
+exec $(dirname "$0")/quiet "$@"
