2> /dev/null)
[ "${#excludes[@]}" -eq "0" ] \
|| echo "ℹ️ INFO: machine $machine; excludes ${excludes[*]}"
- # TODO: config read - rsync implementation
+
+ rsyncargs=("--archive"
+ "--verbose"
+ "--sparse"
+ "--acls"
+ "--hard-links"
+ "--relative"
+ "--human-readable")
+ local exclude=
+ for exclude in "${excludes[@]}"; do
+ rsyncargs+=("--exclude=\"$exclude\"")
+ done
+ rsyncargs+=("--rsh=ssh -p $port")
+ local hostpath="$remote_user@$host:$path"
+ rsyncargs+=("$hostpath")
+ rsyncargs+=("$backup_path/$machine")
+
+ rsync "${rsyncargs[@]}"
}
machine_backup_pathes()
date() {
echo "2000-01-01"
}
+ rsync() {
+ :
+ }
}
teardown() {
assert_line --index 8 "ℹ️ INFO: machine ${LIGHTPURPLE}testpc1${RESET}; path ${YELLOW}/home/user${RESET}"
assert_line --index 9 "################################################################################"
assert_line --index 10 "✅ SUCCESS: backup"
+}
+
+@test "success backup machine path rsync parameters" {
+ rsync() {
+ [ "$1" == "--archive" ]; shift
+ [ "$1" == "--verbose" ]; shift
+ [ "$1" == "--sparse" ]; shift
+ [ "$1" == "--acls" ]; shift
+ [ "$1" == "--hard-links" ]; shift
+ [ "$1" == "--relative" ]; shift
+ [ "$1" == "--human-readable" ]; shift
+ [ "$1" == "--exclude=\"/home/user/.cache\"" ]; shift
+ [ "$1" == "--exclude=\"/home/user/.local\"" ]; shift
+ [ "$1" == "--rsh=\"ssh -p 22\"" ]; shift
+ [ "$1" == "backupuser@www.example.com:/etc" ]; shift
+ [ "$1" == "build/2000-01-01_01_backup/testpc1" ]; shift
+ }
+ run main
+
+ assert_success
+ assert_line --index 0 "⭐ START: backup"
+ assert_line --partial "✅ SUCCESS: backup"
}
\ No newline at end of file