summaryrefslogtreecommitdiffstats
path: root/initramfs/stage3-stuff/bin/init-wrapper
diff options
context:
space:
mode:
authorSebastian Schmelzer2008-10-15 12:54:09 +0200
committerSebastian Schmelzer2008-10-15 12:54:09 +0200
commit30f50bd9b229a3a082a775914c096133763bb3b3 (patch)
tree65ca6bb7ab09cb1245ec14b45772a9d13c5f506c /initramfs/stage3-stuff/bin/init-wrapper
parentvmchooser fixes: * group item is now considered - version 0.0.3 / xserver: * ... (diff)
downloadcore-30f50bd9b229a3a082a775914c096133763bb3b3.tar.gz
core-30f50bd9b229a3a082a775914c096133763bb3b3.tar.xz
core-30f50bd9b229a3a082a775914c096133763bb3b3.zip
* minor fixes
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@2312 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'initramfs/stage3-stuff/bin/init-wrapper')
-rwxr-xr-xinitramfs/stage3-stuff/bin/init-wrapper35
1 files changed, 17 insertions, 18 deletions
diff --git a/initramfs/stage3-stuff/bin/init-wrapper b/initramfs/stage3-stuff/bin/init-wrapper
index 5f10f333..a0b76bdc 100755
--- a/initramfs/stage3-stuff/bin/init-wrapper
+++ b/initramfs/stage3-stuff/bin/init-wrapper
@@ -33,26 +33,25 @@ DEBUGLEVEL="$2"
# initial
[ -d /tmp/env ] || mkdir -p /tmp/env
-# load temporary environments
-for tmpenv in /tmp/env/*
-do
- [ -f "$tmpenv" ] && . $tmpenv
-done
+if [ ! -f /tmp/env/base.sed ]; then
+ # get environment and prepare as sed command
+ pre_env_base=$(env | sed -e 's/^\([^=]*\).*/\1/' | tr '\n' ';')
+ pre_env_base=$(echo $pre_env_base| sed -e 's/;/\.\*\/\/;s\/\^/g')
+ pre_env_base="s/^$pre_env_base//;"
+ $(echo $pre_env_base > /tmp/env/base.sed)
+else
+ pre_env_base=$(cat /tmp/env/base.sed)
+fi
-# get environment and prepare as sed command
-pre_env=$(env | sed -e 's/^\([^=]*\).*/\1/' | tr '\n' ';')
-pre_env=$(echo $pre_env| sed -e 's/;/\.\*\/\/;s\/\^/g')
-pre_env="s/^$pre_env//;"
+# load temporary environments
+[ -f /tmp/env/wrapper.env ] && . /tmp/env/wrapper.env
-[ "${DEBUGLEVEL}" -gt 10 -a "${DEBUGLEVEL}" -le 20 ] && set -x
+[ "${DEBUGLEVEL}" -eq 15 ] && set -x
[ -f $init_file ] && . $init_file
-[ "${DEBUGLEVEL}" -gt 10 -a "${DEBUGLEVEL}" -le 20 ] && set +x
-
-outfile=$(basename $init_file)
-outfile="${outfile}.env"
+[ "${DEBUGLEVEL}" -eq 15 ] && set +x
# remove already known environment variables from postenv
-env |sed -e $pre_env | sort -u | \
- sed -e '1s/.*/#generated by init-wrapper/' | \
- sed -e 's/^\([^=]*\)=\(.*\)/\1="\2"/' \
- > /tmp/env/$outfile
+env |sed -e $pre_env_base | sort -u | \
+ sed "1s|.*|# generated by init-wrapper; last changed by $init_file/|" | \
+ sed -e 's/^\([^=]*\)=\(.*\)/export \1="\2"/' \
+ > /tmp/env/wrapper.env