summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2022-07-01 12:55:32 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2022-07-12 09:22:09 +0200
commit6755285ccb55fc1f790e0a2c5202987acb52c98a (patch)
treebb920b542fbadeb3a91e606200218b69c161e012
parent2bbf6c35906caeedd15579cad1d19bb78d40f7b8 (diff)
downloadsystemd-6755285ccb55fc1f790e0a2c5202987acb52c98a.tar.gz
kernel-install: allow overriding the plugin list too
The use of IFS=<newline> is dropped. Let's just iterate over the list, using any whitespace as separator.
-rw-r--r--man/kernel-install.xml5
-rwxr-xr-xsrc/kernel-install/kernel-install.in25
2 files changed, 20 insertions, 10 deletions
diff --git a/man/kernel-install.xml b/man/kernel-install.xml
index bde30ab16a..7ad7f86c6d 100644
--- a/man/kernel-install.xml
+++ b/man/kernel-install.xml
@@ -255,6 +255,11 @@
<filename>install.conf</filename>, <filename>entry-token</filename>, and other files will be
read from this directory.</para>
+ <para><varname>$KERNEL_INSTALL_PLUGINS</varname> can be set to override the list of plugins executed by
+ <command>kernel-install</command>. The argument is a whitespace-separated list of paths.
+ <literal>KERNEL_INSTALL_PLUGINS=:</literal> may be used to prevent any plugins from running.
+ </para>
+
<para><varname>$MACHINE_ID</varname> can be set for <command>kernel-install</command> to override
<varname>$KERNEL_INSTALL_MACHINE_ID</varname>, the machine ID.</para>
diff --git a/src/kernel-install/kernel-install.in b/src/kernel-install/kernel-install.in
index 96595fa295..30b28f4658 100755
--- a/src/kernel-install/kernel-install.in
+++ b/src/kernel-install/kernel-install.in
@@ -312,15 +312,20 @@ MAKE_ENTRY_DIR_ABS=$?
ret=0
-PLUGINS="$(
- dropindirs_sort ".install" \
- "/etc/kernel/install.d" \
- "/usr/lib/kernel/install.d"
-)"
-IFS="
-"
+if [ -z "$KERNEL_INSTALL_PLUGINS" ]; then
+ KERNEL_INSTALL_PLUGINS="$(
+ dropindirs_sort ".install" \
+ "/etc/kernel/install.d" \
+ "/usr/lib/kernel/install.d"
+ )"
+fi
-[ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && printf '%s\n' "Plugin files:" "$PLUGINS"
+if [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ]; then
+ printf '%s\n' "Plugin files:"
+ for f in $KERNEL_INSTALL_PLUGINS; do
+ printf '%s\n' "$f"
+ done
+fi
case "$COMMAND" in
add)
@@ -346,7 +351,7 @@ case "$COMMAND" in
fi
fi
- for f in $PLUGINS; do
+ for f in $KERNEL_INSTALL_PLUGINS; do
[ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && echo "+$f add $KERNEL_VERSION $ENTRY_DIR_ABS" "$@"
"$f" add "$KERNEL_VERSION" "$ENTRY_DIR_ABS" "$@"
@@ -357,7 +362,7 @@ case "$COMMAND" in
;;
remove)
- for f in $PLUGINS; do
+ for f in $KERNEL_INSTALL_PLUGINS; do
[ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && echo "+$f remove $KERNEL_VERSION $ENTRY_DIR_ABS"
"$f" remove "$KERNEL_VERSION" "$ENTRY_DIR_ABS"
err=$?