summaryrefslogtreecommitdiffstats
path: root/initramfs/stage3-stuff/bin/init-wrapper
blob: 57fcb8a069b22a03a29a111c273b4020a453b5ce (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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