Instead of dynamically creating variables to test against, simply remove
the read permission from the hook.

Signed-off-by: Dave Reisner <[email protected]>
---
 init |   21 ++++++++-------------
 1 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/init b/init
index 1f6bc4e..67039c8 100644
--- a/init
+++ b/init
@@ -40,9 +40,9 @@ else
 fi
 
 if [ -n "${disablehooks}" ]; then
-    for d in $(echo "${disablehooks}" | sed 's|,| |g'); do
-        eval "hook_${d}=disabled"
-    done
+    cd /hooks >/dev/null
+    chmod -r ${disablehooks//,/ } 2>/dev/null
+    cd - >/dev/null
 fi
 
 if [ -n "${earlymodules}" ]; then
@@ -60,16 +60,11 @@ fi
 
 if [ -e "/hooks" ]; then
     for h in ${HOOKS}; do
-        TST=""
-        eval "TST=\$hook_${h}"
-        if [ "${TST}" != "disabled" ]; then
-            run_hook () { msg "${h}: no run function defined"; }
-            if [ -e "/hooks/${h}" ]; then
-               . /hooks/${h}
-               msg ":: Running Hook [${h}]"
-               run_hook
-            fi
-        fi
+        [ -r "/hooks/$h" ] || continue
+        run_hook () { msg "${h}: no run function defined"; }
+        . /hooks/${h}
+        msg ":: Running Hook [${h}]"
+        run_hook
     done
 fi
 
-- 
1.7.5.4

Reply via email to