🐇 How do you want to proceed from here Mr 🐢
🐢 I think I can implement the Rsync today. From the looks of https://docs.rs/ssh2/latest/ssh2/ though, I think we can implement file transfer without relying on rsync. It can be easier to implement everything within the code.
🐇 Then, you should rename the issue to
🐢 Fair. There is also ssh_rs crate, but it doesn't have full support for the protocol. Instead we can have another command, like
xvc storage new ssh that uses libssh2 above. It has some limitations on OpenSSH on macOS.
🐇 From the crate's Readme, it looks you can enable
vendored-openssl feature to compile it statically.
🐢 Let's go ahead then. Better to compile it behind a feature flag though.
🐇 Yup. Rsync can be separate. I think at the moment you can implement rsync via
Exec::cmd and make
new ssh a new issue.
🐢 I'll copy this conversation there.
🐇 Now, let's start implementing
🐢 Do we really want to hide it behind a feature flag? It doesn't bring any extra complexity to
generic for example. Just using the commands and returning the errors.
🐇 I think yes. If the user doesn't have
rsync on their system, they can just get errors. We don't need to make the implementation optional, but tests might be so.