]> gitweb.hhaalo.de Git - simple-backup.git/commitdiff
add get first backup dir
authorBastian Dehn <hhaalo@arcor.de>
Tue, 4 Aug 2026 16:17:01 +0000 (18:17 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Tue, 4 Aug 2026 16:17:01 +0000 (18:17 +0200)
src/backup
tests/backup_tests.bats

index 3d886995f185da655f54317263bc7fc30b93a218..e501d8098eb8007ee1f484beebe29230517824ce 100755 (executable)
@@ -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"
 }
 
index 0e76a6213fe68372d3b6a948743eec637640c8eb..36b4d343600f4509f3e925c28e92e5b6caaf6910 100755 (executable)
@@ -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