summaryrefslogtreecommitdiffstats
path: root/modules.d/slx-network/hooks/copy-network-files.sh
blob: 5d28669eee222ecb590d5471d07544f5d8935932 (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
#!/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