diff --git a/go.mod b/go.mod index cd671f2..1ffb1ec 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ toolchain go1.24.0 // replace github.com/picosh/send => ../send -// replace github.com/picosh/go-rsync-receiver => ../go-rsync-receiver +replace github.com/picosh/go-rsync-receiver => ../go-rsync-receiver // replace github.com/picosh/pobj => ../pobj diff --git a/pkg/send/protocols/rsync/rsync.go b/pkg/send/protocols/rsync/rsync.go index 8549190..d3224c0 100644 --- a/pkg/send/protocols/rsync/rsync.go +++ b/pkg/send/protocols/rsync/rsync.go @@ -185,6 +185,11 @@ func Middleware(writeHandler utils.CopyFromClientHandler) pssh.SSHServerMiddlewa }() cmdFlags := session.Command() + flgs := cmdFlags[1:] + for idx, f := range flgs { + // openrsync sends "delete-before" when the client provided "delete" + flgs[idx] = strings.ReplaceAll(f, "delete-before", "delete") + } optsCtx, err := rsyncopts.ParseArguments(cmdFlags[1:], true) if err != nil {