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