Blob Blame History Raw
From 476eb1b345764a7317f32da52b9b36f26fdf51ba Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 23 Apr 2012 11:28:59 +0200
Subject: [PATCH] base: add export_n() function

resembles export -n for dash
---
 modules.d/99base/dracut-lib.sh |   13 +++++++++++++
 modules.d/99base/init.sh       |   12 ++++--------
 2 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
index f46c4a7..a4aa20c 100755
--- a/modules.d/99base/dracut-lib.sh
+++ b/modules.d/99base/dracut-lib.sh
@@ -821,3 +821,16 @@ emergency_shell()
         exit 1
     fi
 }
+
+# Retain the values of these variables but ensure that they are unexported
+# This is a POSIX-compliant equivalent of bash's "export -n"
+export_n()
+{
+    local var
+    local val
+    for var in "$@"; do
+        eval val=\$$var
+        unset $var
+        [ -n "$val" ] && eval $var=\"$val\"
+    done
+}
diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
index cb03137..aea739f 100755
--- a/modules.d/99base/init.sh
+++ b/modules.d/99base/init.sh
@@ -251,7 +251,6 @@ done
     emergency_shell
 }
 
-
 if [ $UDEVVERSION -lt 168 ]; then
     # stop udev queue before killing it
     udevadm control --stop-exec-queue
@@ -268,13 +267,10 @@ else
     udevadm info --cleanup-db
 fi
 
-# Retain the values of these variables but ensure that they are unexported
-# This is a POSIX-compliant equivalent of bash's "export -n"
-for var in root rflags fstype netroot NEWROOT; do
-    eval tmp=\$$var
-    unset $var
-    [ -n "$tmp" ] && eval $var=\"$tmp\"
-done
+debug_off # Turn off debugging for this section
+
+# unexport some vars
+export_n root rflags fstype netroot NEWROOT
 
 export RD_TIMESTAMP
 # Clean up the environment