diff options
Diffstat (limited to 'modules.d/dnbd3-rootfs/hooks/copy-openslx-configuration-into-newroot.sh')
-rwxr-xr-x | modules.d/dnbd3-rootfs/hooks/copy-openslx-configuration-into-newroot.sh | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/modules.d/dnbd3-rootfs/hooks/copy-openslx-configuration-into-newroot.sh b/modules.d/dnbd3-rootfs/hooks/copy-openslx-configuration-into-newroot.sh index 1d601a22..7e2b74e3 100755 --- a/modules.d/dnbd3-rootfs/hooks/copy-openslx-configuration-into-newroot.sh +++ b/modules.d/dnbd3-rootfs/hooks/copy-openslx-configuration-into-newroot.sh @@ -1,8 +1,31 @@ #!/usr/bin/env bash # -*- coding: utf-8 -*- type emergency_shell >/dev/null 2>&1 || source /lib/dracut-lib.sh + source "/etc/openslx" +# Merge search domain from server and from dhcp +( + search="$SLX_NET_SEARCH" + source /run/openslx/network.conf + search="$SLX_NET_SEARCH $search" # DHCP > config vars + declare -a uniq + declare -A dups # Don't use keys for output later as order is undefined + for i in $search; do + [ -n "${dups["$i"]}" ] && continue + dups["$i"]=1 + uniq+=( "$i" ) + done + sed -i 's/^SLX_NET_SEARCH=/# &/' "/etc/openslx" "/run/openslx/network.conf" + echo "SLX_NET_SEARCH='${uniq[*]}'" >> "/run/openslx/network.conf" + if grep -q '^search' "/etc/resolv.conf"; then + sed -i "s/^search.*$/search ${uniq[*]}/" "/etc/resolv.conf" + else + echo "search ${uniq[*]}" "/etc/resolv.conf" + fi +) + + mkdir --parents "${NEWROOT}/opt/openslx" cp "/etc/openslx" "${NEWROOT}/opt/openslx/config" |