69 lines
1.8 KiB
Bash
Executable File
69 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# called by dracut
|
|
check() {
|
|
require_binaries wicked || return 1
|
|
|
|
# do not add this module by default
|
|
return 255
|
|
}
|
|
|
|
# called by dracut
|
|
depends() {
|
|
echo systemd dbus
|
|
return 0
|
|
}
|
|
|
|
# called by dracut
|
|
installkernel() {
|
|
return 0
|
|
}
|
|
|
|
# called by dracut
|
|
install() {
|
|
local -a wicked_units
|
|
|
|
inst_hook cmdline 99 "$moddir/wicked-config.sh"
|
|
|
|
# Seems to not execute if in initqueue/settled
|
|
inst_hook pre-udev 99 "$moddir/wicked-run.sh"
|
|
|
|
# even with wicked configuring the interface, ip is useful
|
|
inst_multiple ip
|
|
|
|
inst_dir /etc/wicked/extensions
|
|
inst_dir /usr/share/wicked/schema
|
|
inst_dir /usr/lib/wicked/bin
|
|
inst_dir /var/lib/wicked
|
|
|
|
inst_multiple "/etc/wicked/*.xml"
|
|
inst_multiple "/etc/wicked/extensions/*"
|
|
inst_multiple "/etc/dbus-1/system.d/org.opensuse.Network*"
|
|
inst_multiple "/usr/share/wicked/schema/*"
|
|
inst_multiple "/usr/lib/wicked/bin/*"
|
|
inst_multiple "/usr/libexec/wicked/bin/*"
|
|
inst_multiple "/usr/sbin/wicked*"
|
|
|
|
wicked_units=(
|
|
"$systemdsystemunitdir"/wickedd.service
|
|
"$systemdsystemunitdir"/wickedd-auto4.service
|
|
"$systemdsystemunitdir"/wickedd-dhcp4.service
|
|
"$systemdsystemunitdir"/wickedd-dhcp6.service
|
|
"$systemdsystemunitdir"/wickedd-nanny.service
|
|
)
|
|
|
|
inst_multiple "${wicked_units[@]}"
|
|
|
|
for unit in "${wicked_units[@]}"; do
|
|
sed -i 's/^After=.*/After=dbus.service/g' "$initdir/$unit"
|
|
sed -i 's/^Before=\(.*\)/Before=\1 dracut-pre-udev.service/g' "$initdir/$unit"
|
|
sed -i 's/^Wants=\(.*\)/Wants=\1 dbus.service/g' "$initdir/$unit"
|
|
# shellcheck disable=SC1004
|
|
sed -i -e \
|
|
'/^\[Unit\]/aDefaultDependencies=no\
|
|
Conflicts=shutdown.target\
|
|
Before=shutdown.target' \
|
|
"$initdir/$unit"
|
|
done
|
|
}
|