[pve-devel] [PATCH kernel-meta 03/10] pve-efiboot-tool: add and use list file helpers
Fabian Grünbichler
f.gruenbichler at proxmox.com
Fri Jul 12 15:16:44 CEST 2019
in preparation of adding another file for custom kernels with the same semantics
Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
---
bin/pve-efiboot-tool | 36 ++++++++++++++++++++++++++++++------
1 file changed, 30 insertions(+), 6 deletions(-)
diff --git a/bin/pve-efiboot-tool b/bin/pve-efiboot-tool
index abaaf00..31ba9c1 100755
--- a/bin/pve-efiboot-tool
+++ b/bin/pve-efiboot-tool
@@ -4,6 +4,35 @@ set -e
. /usr/share/pve-kernel-helper/scripts/functions
+_add_entry_to_list_file() {
+ file="$1"
+ entry="$2"
+
+ if [ -e "$file" ]; then
+ cp "$file" "$file.new"
+ fi
+ echo "$entry" >> "$file.new"
+ sort -uo "$file.new" "$file.new"
+ mv "$file.new" "$file"
+}
+
+_remove_entry_from_list_file() {
+ file="$1"
+ entry="$2"
+
+ # guard against removing whole file by accident!
+ if [ -z "$entry" ]; then
+ echo "cannot remove empty entry from '$file'."
+ return
+ fi
+
+ if [ -e "$file" ]; then
+ grep -vFx "$entry" "$file" > "$file.new" || true
+ mv "$file.new" "$file"
+ else
+ echo "'$file' does not exist.."
+ fi
+}
_get_partition_info() {
if [ ! -e "$1" ]; then
@@ -130,12 +159,7 @@ init() {
umount "$part"
echo "Adding '$part' to list of synced ESPs.."
- if [ -e "$ESP_LIST" ]; then
- cp "$ESP_LIST" "$ESP_LIST.new"
- fi
- echo "$UUID" >> "$ESP_LIST.new"
- sort -uo "$ESP_LIST.new" "$ESP_LIST.new"
- mv "$ESP_LIST.new" "$ESP_LIST"
+ _add_entry_to_list_file "$ESP_LIST" "$UUID"
echo "Refreshing kernels and initrds.."
refresh
--
2.20.1
More information about the pve-devel
mailing list