]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
kernel-install: allow overriding the plugin list too
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 1 Jul 2022 10:55:32 +0000 (12:55 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 12 Jul 2022 07:22:09 +0000 (09:22 +0200)
The use of IFS=<newline> is dropped. Let's just iterate over the list, using
any whitespace as separator.

man/kernel-install.xml
src/kernel-install/kernel-install.in

index bde30ab16ae2faa079eee36b7138b5df449ef215..7ad7f86c6da2348475152cb4b5e8aabe508bd18b 100644 (file)
       <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>
 
index 96595fa295ef1ab1643a5f41d17f2642e1f75029..30b28f4658b1d8ba87a76d3b33d752a0234f1ddc 100755 (executable)
@@ -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=$?