rsyncrepo script: allow optionally supplying target name

The `rsyncrepo` and `rsynchydra` scripts now support an optional 3rd
argument to define the target name on the host instead of
auto-determining it from the basename.
This is important for syncing local directories of varying names all to
the same `fc-nixos` target for dev checkouts on VMs.
This commit is contained in:
Trolli Schmittlauch 2024-07-25 23:09:57 +02:00
parent cfa41acafc
commit 2e16c5e914

View file

@ -29,7 +29,7 @@
JUMPHOST="$DEFAULT_JUMPHOST"
;;
?)
echo "rsyncrepo [-J] [-j <jumphost>] <directory> <hostname>"
echo "rsyncrepo [-J] [-j <jumphost>] <directory> <hostname> [target dir name]"
return 1
;;
esac
@ -40,6 +40,7 @@
RR_FROM="$1"
RR_TO="$2"
RR_TARGET="$3"
}
_do_rsync() {
@ -57,8 +58,12 @@
echo "$OPTI"
done
# we always sync /path/to/dir/ to hostname:dir
RR_DEST="''${2}:$(basename $(realpath "''${1}"))"
# If no $3 is specified, we sync /path/to/dir/ to hostname:dir
if [ -z "$3" ]; then
RR_DEST="''${2}:$(basename $(realpath "''${1}"))"
else
RR_DEST="''${2}:''${3}"
fi
echo "Syncing ''${1} to ''${RR_DEST}"
@ -69,11 +74,11 @@
rsyncrepo() {
_parse_rsync_args "$@"
# inherits parsed arguments through variables
_do_rsync "$RR_FROM" "$RR_TO"
_do_rsync "$RR_FROM" "$RR_TO" "$RR_TARGET"
}
rsynchydra() {
_parse_rsync_args "$@"
_do_rsync "$RR_FROM" "hydra01"
_do_rsync "$RR_FROM" "hydra01" "$RR_TARGET"
}
''