diff options
Diffstat (limited to 'src/initramfs/scripts/bin/init-wrapper')
-rwxr-xr-x | src/initramfs/scripts/bin/init-wrapper | 60 |
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 + |