Module B00_rsync

rsync support.

val get_cmd : ?⁠search:B00_std.Fpath.t list -> ?⁠cmd:B00_std.Cmd.t -> unit -> (B00_std.Cmd.t, string) Stdlib.result

get_cmd () looks for rsync with Os.Cmd.get.

val copy : ?⁠opts:B00_std.Cmd.t -> ?⁠stats:bool -> delete:bool -> ?⁠src_host:string -> src:B00_std.Fpath.t -> ?⁠dst_host:string -> B00_std.Fpath.t -> (unit, string) Stdlib.result

copy ~src dst copies the contents of directory src to dst with rsync. As per rsync semantics, directoryness of src is important (dst's one is not):

  • If src has a trailing directory separator, the contents src/* is copied to dst/*.
  • If src has no trailing directory separator, the contents of src/* is copied to dst/$(basename src)/*.

src_host and dst_host specify the host for source and destination directory (e.g. "myhost:"). They default to "".

If delete is true, deletes files at destination that do not exist in src. If stats is true (default) outputs statistics about the transfer. opts defaults to -azh, this means transfer in archive mode which preserves symlinks and file attributes and compression is enabled.