From d41991979e8d11301df6a37ea30ddd866bde4406 Mon Sep 17 00:00:00 2001 From: expoodo <60551350+expoodo@users.noreply.github.com> Date: Sun, 18 Feb 2024 20:24:13 -0500 Subject: [PATCH] add support for yabsnap snapshots info --- 41_snapshots-btrfs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/41_snapshots-btrfs b/41_snapshots-btrfs index e63aae1..eb4e02d 100755 --- a/41_snapshots-btrfs +++ b/41_snapshots-btrfs @@ -315,16 +315,24 @@ snapshot_list() fi [[ ! -d "$grub_btrfs_mount_point/$path_snapshot/boot" ]] && continue; # Discard snapshots without /boot folder - # Parse Snapper & timeshift information + # Parse Snapper & timeshift & yabsnap informations local type_snapshot="N/A" local description_snapshot="N/A" + + # path to yabsnap snapshot meta data + local yabsnap_info="$grub_btrfs_mount_point/${path_snapshot%"/"*}/$(echo "${snap[@]:13:1}" | awk -F'/' '{print $3 "-meta.json"}')" + if [[ -s "$grub_btrfs_mount_point/${path_snapshot%"/"*}/$snapper_info" ]] ; then type_snapshot=$(awk -F"<|>" 'match($2, /^type/) {print $3}' "$grub_btrfs_mount_point/${path_snapshot%"/"*}/$snapper_info") # search matching string beginning "type" description_snapshot=$(awk -F"<|>" 'match($2, /^description/) {print $3}' "$grub_btrfs_mount_point/${path_snapshot%"/"*}/$snapper_info") # search matching string beginning "description" elif [[ -s "$grub_btrfs_mount_point/${path_snapshot%"/"*}/$timeshift_info" ]] ; then type_snapshot=$(awk -F" : " 'match($1, /^[ \t]+"tags"/) {gsub(/"|,/,"");print $2}' "$grub_btrfs_mount_point/${path_snapshot%"/"*}/$timeshift_info") # search matching string beginning "tags" description_snapshot=$(awk -F" : " 'match($1, /^[ \t]+"comments"/) {gsub(/"|,/,"");print $2}' "$grub_btrfs_mount_point/${path_snapshot%"/"*}/$timeshift_info") # search matching string beginning "comments" + elif [[ -s $yabsnap_info ]] ; then + type_snapshot=$(grep -P '^\s*"trigger"' $yabsnap_info | awk -F'"' '{print $4}') # search matching string beginning "trigger" + description_snapshot=$(grep -P '^\s*"comment"' $yabsnap_info | awk -F'"' '{print $4}') # search matching string beginning "comment" fi + [[ -z "$type_snapshot" ]] && type_snapshot=("N/A") [[ -z "$description_snapshot" ]] && description_snapshot=("N/A")