diff options
Diffstat (limited to 'modules.d/slx-network/hooks/s3-copy-network-files.sh')
-rwxr-xr-x | modules.d/slx-network/hooks/s3-copy-network-files.sh | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/modules.d/slx-network/hooks/s3-copy-network-files.sh b/modules.d/slx-network/hooks/s3-copy-network-files.sh new file mode 100755 index 00000000..5d28669e --- /dev/null +++ b/modules.d/slx-network/hooks/s3-copy-network-files.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +type -p warn &> /dev/null || . /lib/dracut-lib.sh + +if [ -n "$NEWROOT" ]; then + # backup network configuration files found in stage4 + for file in /etc/{hostname,hosts,resolv.conf}; do + if [ ! -e "$file" ]; then + warn "Missing '$file' - can't move it to stage4. " + continue + fi + if [ -e "${NEWROOT}/${file}" ] || [ -h "${NEWROOT}/${file}" ]; then + mv "${NEWROOT}/${file}" "${NEWROOT}/${file}.renamed-by-stage3" + fi + cp -af "$file" "${NEWROOT}/etc/" + done + # special handling for resolv.conf: + # move it to /opt/openslx to detect we are managing it + mkdir -p "${NEWROOT}/opt/openslx" + mv "${NEWROOT}/etc/resolv.conf" "${NEWROOT}/opt/openslx/resolv.conf" + ln -s "/opt/openslx/resolv.conf" "${NEWROOT}/etc/resolv.conf" + + # HACK: finally make sure we have rdns helper + # This should be done more elegantly one day... + rdns="$(type -p rdns)" + if [ -n "$rdns" ]; then + mkdir -p "${NEWROOT}/opt/openslx/bin" + cp -f "$rdns" "${NEWROOT}/opt/openslx/bin" + fi +fi +true |