From f52365d836d3895eb06a3aac7631e079a160a878 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Tue, 4 Aug 2026 18:17:01 +0200 Subject: [PATCH] add get first backup dir --- src/backup | 29 +++++++++++++++++++++++++++-- tests/backup_tests.bats | 18 +++++++++++++++++- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/src/backup b/src/backup index 3d88699..e501d80 100755 --- a/src/backup +++ b/src/backup @@ -70,8 +70,8 @@ exists_backup_count() get_last_backup_dir_path() { local config="$1" - local backup_path=$(echo "$config" | jq '.backup_path') - local backup_name=$(echo "$config" | jq '.backup_name') + local backup_path=$(echo "$config" | jq --raw-output '.backup_path') + local backup_name=$(echo "$config" | jq --raw-output '.backup_name') find "$backup_path" \ -maxdepth 1 \ @@ -81,6 +81,27 @@ get_last_backup_dir_path() | tail --lines=1 } +get_backup_dir() +{ + local config="$1" + local backup_path= + local backup_name= + local date= + local last_backup_number="1" + date=$(date --iso-8601=date) + backup_path=$(echo "$config" | jq --raw-output '.backup_path') + backup_name=$(echo "$config" | jq --raw-output '.backup_name') + + local backup_dir= + local number= + for number in $(seq --format "%02g" "$last_backup_number" 99); do + backup_dir="$date"_"$number"_"$backup_name" + [ -d "$backup_path/$backup_dir" ] || break; + done + + echo "$backup_dir" +} + main() { local CONFIG_FILE=${CONFIG_FILE:="config.yaml"} @@ -102,6 +123,10 @@ main() [ -n "$last_backup_dir_path" ] \ && echo "ℹ️ INFO: last backup dir path $last_backup_dir_path" + local backup_dir= + backup_dir=$(get_backup_dir "$config") + echo "ℹ️ INFO: backup folder $backup_dir" + echo "✅ SUCCESS: backup" } diff --git a/tests/backup_tests.bats b/tests/backup_tests.bats index 0e76a62..36b4d34 100755 --- a/tests/backup_tests.bats +++ b/tests/backup_tests.bats @@ -152,7 +152,7 @@ teardown() { assert_line --index 1 "ℹ️ INFO: backup path /images/backup" assert_line --index 2 "ℹ️ INFO: backup name backup" assert_line --index 3 "ℹ️ INFO: backup count 15" - assert_line --index 4 "✅ SUCCESS: backup" + assert_line --index 5 "✅ SUCCESS: backup" } @test "last backup dir path info" { @@ -168,5 +168,21 @@ teardown() { assert_line --index 2 "ℹ️ INFO: backup name backup" assert_line --index 3 "ℹ️ INFO: backup count 15" assert_line --index 4 "ℹ️ INFO: last backup dir path /images/backup/2000-01-01_backup" + assert_line --index 6 "✅ SUCCESS: backup" +} + +@test "new backup folder info" { + date() { + echo "2000-01-01" + } + + run main + + assert_success + assert_line --index 0 "⭐ START: backup" + assert_line --index 1 "ℹ️ INFO: backup path /images/backup" + assert_line --index 2 "ℹ️ INFO: backup name backup" + assert_line --index 3 "ℹ️ INFO: backup count 15" + assert_line --index 4 "ℹ️ INFO: backup folder 2000-01-01_01_backup" assert_line --index 5 "✅ SUCCESS: backup" } \ No newline at end of file -- 2.47.3