From 6e829c9b0a30571391f4b24415e14f457924870c Mon Sep 17 00:00:00 2001 From: Stefan Reiter Date: Thu, 1 Aug 2019 13:01:02 +0200 Subject: [PATCH] Add parameter '--hook' to 'refresh' command Mostly to avoid calling hooks directly in other scripts, future-proofing. Signed-off-by: Stefan Reiter --- bin/pve-efiboot-tool | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/bin/pve-efiboot-tool b/bin/pve-efiboot-tool index a2ff4e1..d9bb829 100755 --- a/bin/pve-efiboot-tool +++ b/bin/pve-efiboot-tool @@ -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 [--force]" warn " $0 init " warn " $0 clean [--dry-run]" - warn " $0 refresh" + warn " $0 refresh [--hook ]" warn " $0 kernel " 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 ]" 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 " 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')