]>
Commit | Line | Data |
---|---|---|
cbb4b50e | 1 | #!/bin/bash |
ea779750 JG |
2 | # This file is part of dracut. |
3 | # SPDX-License-Identifier: GPL-2.0-or-later | |
cbb4b50e | 4 | |
ea779750 | 5 | # Prerequisite check(s) for module. |
cbb4b50e HH |
6 | check() { |
7 | [[ $mount_needs ]] && return 1 | |
8 | ||
ea779750 JG |
9 | # If the binary(s) requirements are not fulfilled the module can't be installed |
10 | require_binaries ip networkctl \ | |
11 | "$systemdutildir"/systemd-networkd \ | |
12 | "$systemdutildir"/systemd-network-generator \ | |
13 | "$systemdutildir"/systemd-networkd-wait-online \ | |
14 | || return 1 | |
15 | ||
16 | # Return 255 to only include the module, if another module requires it. | |
cbb4b50e | 17 | return 255 |
ea779750 | 18 | |
cbb4b50e HH |
19 | } |
20 | ||
ea779750 | 21 | # Module dependency requirements. |
cbb4b50e | 22 | depends() { |
cbb4b50e | 23 | |
ea779750 JG |
24 | # This module has external dependency on other module(s). |
25 | echo dbus kernel-network-modules systemd-sysusers | |
26 | # Return 0 to include the dependent module(s) in the initramfs. | |
cbb4b50e | 27 | return 0 |
ea779750 | 28 | |
cbb4b50e HH |
29 | } |
30 | ||
ea779750 | 31 | # Install the required file(s) and directories for the module in the initramfs. |
cbb4b50e | 32 | install() { |
ea779750 | 33 | |
cbb4b50e | 34 | inst_multiple -o \ |
ea779750 JG |
35 | "$dbussystem"/org.freedesktop.network1.conf \ |
36 | "$dbussystemservices"/org.freedesktop.network1.service \ | |
37 | "$systemdutildir"/networkd.conf \ | |
38 | "$systemdutildir/networkd.conf.d/*.conf" \ | |
231917e9 | 39 | "$systemdutildir"/systemd-networkd \ |
ea779750 | 40 | "$systemdutildir"/systemd-network-generator \ |
231917e9 | 41 | "$systemdutildir"/systemd-networkd-wait-online \ |
ea779750 JG |
42 | "$systemdutildir"/network/80-container-host0.network \ |
43 | "$systemdutildir"/network/80-container-ve.network \ | |
44 | "$systemdutildir"/network/80-container-vz.network \ | |
45 | "$systemdutildir"/network/80-vm-vt.network \ | |
46 | "$systemdutildir"/network/80-wifi-adhoc.network \ | |
47 | "$systemdutildir"/network/99-default.link \ | |
231917e9 HH |
48 | "$systemdsystemunitdir"/systemd-networkd.service \ |
49 | "$systemdsystemunitdir"/systemd-networkd.socket \ | |
ea779750 JG |
50 | "$systemdsystemunitdir"/systemd-network-generator.service \ |
51 | "$systemdsystemunitdir"/systemd-networkd-wait-online.service \ | |
52 | "$systemdsystemunitdir"/systemd-network-generator.service \ | |
fec93bb2 | 53 | "$sysusers"/systemd-network.conf \ |
cbb4b50e HH |
54 | networkctl ip |
55 | ||
ea779750 | 56 | # Enable systemd type units |
cbb4b50e | 57 | for i in \ |
70b19acf | 58 | systemd-networkd.service \ |
ea779750 JG |
59 | systemd-networkd.socket \ |
60 | systemd-network-generator.service \ | |
61 | systemd-networkd-wait-online.service; do | |
18d36fab | 62 | $SYSTEMCTL -q --root "$initdir" enable "$i" |
cbb4b50e | 63 | done |
ea779750 JG |
64 | |
65 | # Install the hosts local user configurations if enabled. | |
66 | if [[ $hostonly ]]; then | |
67 | inst_multiple -H -o \ | |
68 | "$systemdutilconfdir"/networkd.conf \ | |
69 | "$systemdutilconfdir/networkd.conf.d/*.conf" \ | |
70 | "$systemdutilconfdir/network/*" \ | |
71 | "$systemdsystemconfdir"/systemd-networkd.service \ | |
72 | "$systemdsystemconfdir/systemd-networkd.service/*.conf" \ | |
d4732be8 AAF |
73 | "$systemdsystemconfdir"/systemd-networkd.socket \ |
74 | "$systemdsystemconfdir/systemd-networkd.socket/*.conf" \ | |
ea779750 JG |
75 | "$systemdsystemconfdir"/systemd-network-generator.service \ |
76 | "$systemdsystemconfdir/systemd-network-generator.service/*.conf" \ | |
77 | "$systemdsystemconfdir"/systemd-networkd-wait-online.service \ | |
fec93bb2 CH |
78 | "$systemdsystemconfdir/systemd-networkd-wait-online.service/*.conf" \ |
79 | "$sysusersconfdir"/systemd-network.conf | |
ea779750 | 80 | fi |
cbb4b50e | 81 | } |