[pve-devel] [PATCH kernel-meta 1/2] Add parameter '--hook' to 'refresh' command

Stefan Reiter s.reiter at proxmox.com
Thu Aug 1 13:01:02 CEST 2019


Mostly to avoid calling hooks directly in other scripts, future-proofing.

Signed-off-by: Stefan Reiter <s.reiter at proxmox.com>
---
 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 <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')
-- 
2.20.1




More information about the pve-devel mailing list