summaryrefslogtreecommitdiffstats
path: root/src/initramfs/scripts/bin/init-wrapper
diff options
context:
space:
mode:
Diffstat (limited to 'src/initramfs/scripts/bin/init-wrapper')
-rwxr-xr-xsrc/initramfs/scripts/bin/init-wrapper60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/initramfs/scripts/bin/init-wrapper b/src/initramfs/scripts/bin/init-wrapper
new file mode 100755
index 00000000..57fcb8a0
--- /dev/null
+++ b/src/initramfs/scripts/bin/init-wrapper
@@ -0,0 +1,60 @@
+#!/bin/sh
+# Copyright (c) 2006..2010 - OpenSLX GmbH
+#
+# This program is free software distributed under the GPL version 2.
+# See http://openslx.org/COPYING
+#
+# If you have any feedback please consult http://openslx.org/feedback and
+# send your feedback to feedback@openslx.org
+#
+# General information about OpenSLX can be found at http://openslx.org
+#
+# wrapperscript for plugin init files
+#############################################################################
+
+# Get parameters
+init_file="$1"
+DEBUGLEVEL="$2"
+
+[ -z $DEBUGLEVEL ] && DEBUGLEVEL=0
+
+# How do the localization here? There is not yet a country-Variable
+. /etc/messages
+. /etc/functions
+. /etc/distro-functions
+
+# Configuration settings for this slx system's environment
+. /etc/slxsystem.conf 2>/dev/null
+
+# initramfs-setup configuration (common initial settings for all clients using
+# a certain InitRamFS generated by slxconfig-demuxer)
+[ -f /etc/initramfs-setup ] && . /etc/initramfs-setup 2>/dev/null
+
+# Initial
+testmkd /tmp/env
+
+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
+
+# Load temporary environments
+[ -f /tmp/env/wrapper.env ] && . /tmp/env/wrapper.env
+
+[ "${DEBUGLEVEL}" -eq 15 ] && set -x
+[ -f $init_file ] && . $init_file
+[ "${DEBUGLEVEL}" -eq 15 ] && set +x
+
+# Remove already known environment variables from postenv
+#env |sed -e $pre_env_base | sort -u | \
+# Store the environment for re-initialization in runinithook function
+env | grep -v -E "debug|DEBUGLEVEL" | sort -u | \
+ sed "1s|.*|# generated by init-wrapper; last changed by $init_file|" | \
+ sed -e 's/^\([^=]*\)=\(.*\)/export \1="\2"/' \
+ > /tmp/env/wrapper.env
+