]> git.proxmox.com Git - pve-kernel-meta.git/commitdiff
Add parameter '--hook' to 'refresh' command
authorStefan Reiter <s.reiter@proxmox.com>
Thu, 1 Aug 2019 11:01:02 +0000 (13:01 +0200)
committerFabian Grünbichler <f.gruenbichler@proxmox.com>
Mon, 5 Aug 2019 10:06:52 +0000 (12:06 +0200)
Mostly to avoid calling hooks directly in other scripts, future-proofing.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
bin/pve-efiboot-tool

index a2ff4e1b6fc9573b9b1be954faa365feed741692..d9bb8299022a94a6bbc028cbafd44a0183676c23 100755 (executable)
@@ -195,10 +195,19 @@ clean() {
 }
 
 refresh() {
-       hookscripts='pve-auto-removal zz-pve-efiboot'
+       hookscripts="$1"
+       if [ -z "$hookscripts" ]; then
+               hookscripts='pve-auto-removal zz-pve-efiboot'
+       fi
+
        for script in $hookscripts; do
-               echo "Running hook script '$script'.."
-               "/etc/kernel/postinst.d/$script"
+               scriptpath="/etc/kernel/postinst.d/$script"
+               if [ -f "$scriptpath" ] && [ -x "$scriptpath" ]; then
+                       echo "Running hook script '$script'.."
+                       $scriptpath
+               else
+                       warn "Hook script '$script' not found or not executable, skipping."
+               fi
        done
 }
 
@@ -261,7 +270,7 @@ usage() {
        warn "       $0 format <partition> [--force]"
        warn "       $0 init <partition>"
        warn "       $0 clean [--dry-run]"
-       warn "       $0 refresh"
+       warn "       $0 refresh [--hook <name>]"
        warn "       $0 kernel <add|remove> <kernel-version>"
        warn "       $0 kernel list"
        warn "       $0 help"
@@ -280,9 +289,9 @@ help() {
        echo ""
        echo "    remove no longer existing EFI system partition UUIDs from $ESP_LIST. Use --dry-run to only print outdated entries instead of removing them."
        echo ""
-       echo "USAGE: $0 refresh"
+       echo "USAGE: $0 refresh [--hook <name>]"
        echo ""
-       echo "    refresh all configured EFI system partitions."
+       echo "    refresh all configured EFI system partitions. Use --hook to only run the specified hook, omit to run all."
        echo ""
        echo "USAGE: $0 kernel <add|remove> <kernel-version>"
        echo ""
@@ -331,7 +340,14 @@ case "$1" in
        ;;
        'refresh')
                shift
-               refresh
+               if [ "$#" -eq 0 ]; then
+                       refresh
+               elif [ "$#" -eq 2 ] && [ "$1" = "--hook" ]; then
+                       refresh "$2"
+               else
+                       usage
+                       exit 1
+               fi
                exit 0
        ;;
        'kernel'|'kernels')