From fe0cd8e6c5b810d37ad37449a37529cddf3dce15 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sat, 15 Aug 2026 13:34:58 +0200 Subject: [PATCH] add backup dir not exists error --- src/restore | 25 +++++++++++++++---------- tests/restore_tests.bats | 19 +++++++++++++++---- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/src/restore b/src/restore index 27ee4a5..8a181be 100755 --- a/src/restore +++ b/src/restore @@ -75,8 +75,8 @@ restore() local backup_path= local backup_name= local remote_user= - local remote_machine= - local remote_port= + local host= + local port= backup_path=$(echo "$config" \ | jq --raw-output ".backup_path") @@ -87,15 +87,20 @@ restore() [ "$remote_user" != "null" ] \ || errlog "missing remote user in $CONFIG_FILE" \ || return $? - remote_machine=$(echo "$config" \ - | jq --raw-output ".machines.\"$machine\".remote_machine") - [ "$remote_machine" != "null" ] \ - || errlog "missing remote machine in $CONFIG_FILE" \ + host=$(echo "$config" \ + | jq --raw-output ".machines.\"$machine\".host") + [ "$host" != "null" ] \ + || errlog "missing host in $CONFIG_FILE" \ || return $? - remote_port=$(echo "$config" \ - | jq --raw-output ".machines.\"$machine\".remote_port") - [ "$remote_port" != "null" ] \ - || errlog "missing remote port in $CONFIG_FILE" \ + port=$(echo "$config" \ + | jq --raw-output ".machines.\"$machine\".port") + [ "$port" != "null" ] \ + || errlog "missing port in $CONFIG_FILE" \ + || return $? + + local backup_dir="${date}_${number}_${backup_name}" + [ -d "$backup_path/$backup_dir" ] \ + || errlog "directory $backup_path/$backup_dir not exists" \ || return $? } diff --git a/tests/restore_tests.bats b/tests/restore_tests.bats index e91b4ce..cf3913e 100755 --- a/tests/restore_tests.bats +++ b/tests/restore_tests.bats @@ -224,7 +224,7 @@ teardown() { } # bats test_tags=backup:config -@test "failure config missing remote machine" { +@test "failure config missing host" { yq() { echo '{ "backup_path": "build/test", @@ -243,7 +243,7 @@ teardown() { assert_line --index 0 "⭐ START: restore" assert_line --index 1 "ℹ️ INFO: backup path build/test" assert_line --index 2 "ℹ️ INFO: backup name backup" - assert_line --index 3 "❌ ERROR: missing remote machine in src/config-example.yaml" + assert_line --index 3 "❌ ERROR: missing host in src/config-example.yaml" } # bats test_tags=backup:config @@ -255,7 +255,7 @@ teardown() { "machines": { "testpc1.example.com": { "remote_user": "testuser", - "remote_machine": "rmachine" + "host": "rmachine" } } }' @@ -267,5 +267,16 @@ teardown() { assert_line --index 0 "⭐ START: restore" assert_line --index 1 "ℹ️ INFO: backup path build/test" assert_line --index 2 "ℹ️ INFO: backup name backup" - assert_line --index 3 "❌ ERROR: missing remote port in src/config-example.yaml" + assert_line --index 3 "❌ ERROR: missing port in src/config-example.yaml" +} + +# bats test_tags=backup:pathcheck +@test "failure no backup directory" { + run main -d "2000-01-01" -n "01" -r "testpc1.example.com" -p "/testpath" + + assert_failure + assert_line --index 0 "⭐ START: restore" + assert_line --index 1 "ℹ️ INFO: backup path build/test" + assert_line --index 2 "ℹ️ INFO: backup name backup" + assert_line --index 3 "❌ ERROR: directory build/test/2000-01-01_01_backup not exists" } \ No newline at end of file -- 2.47.3