summaryrefslogtreecommitdiffstats
path: root/modules.d/slx-network/hooks/activate-bootif-dhcp.sh
blob: 9a5f0b8881feb3480b401cec17b7288b2816cc88 (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
#
# This script enables the udhcpc-based DHCP service for stage4,
# unless specifically disabled by 'SLX_STAGE4_DHCP="no"',
# or the OpenSLX udhcpc service/script exists in stage4.

. /etc/openslx

if [ "$SLX_STAGE4_DHCP" != "no" ] \
		&& ! [ -e "${NEWROOT}/opt/openslx/scripts/udhcpc-openslx" ]; then
	mkdir -p "${NEWROOT}/opt/openslx/scripts"
	for script in setup-bootif-network udhcpc-trigger; do
		if [ -e "${NEWROOT}/opt/openslx/scripts/${script}" ]; then
			mv "${NEWROOT}/opt/openslx/scripts/${script}"{,.stage4}
		fi
		cp -f "/opt/openslx/scripts/${script}.stage4" \
			"${NEWROOT}/opt/openslx/scripts/${script}"
	done
	
	# copy udhcpc@ systemd service, backup existing ones for debugging
	mkdir -p "${NEWROOT}/etc/systemd/system"
	cp -f "/opt/openslx/services/udhcpc-bootif.service" "${NEWROOT}/etc/systemd/system"
	
	# it requires /run/network
	echo 'd /run/network 0755 root root' > "${NEWROOT}/etc/tmpfiles.d/network.conf"
	
	# activate it for the bridge or the physical interface if not bridged
	systemctl --quiet --root "$NEWROOT" enable "udhcpc-bootif"
fi

: