waveterm/cmd
Evan Simkowitz 902ff9baf1
enable wsh file cross-remote copy/move (#1725)
This adds the ability to stream `tar` archives over channels between
`wsh` instances. The main use cases for this are remote copy and move
operations.

It also completes the `wavefs` implementation of the FileShare interface
to allow copy/move interoperability between wavefiles and other storage
types.

The tar streaming functionality has been broken out into the new
`tarcopy` package for easy reuse.

New `fileshare` functions are added for `CopyInternal`, which allows
copying files internal to a filesystem to bypass the expensive interop
layer, and `MoveInternal`, which does the same for moving a file within
a filesystem. Copying between remotes is now handled by `CopyRemote`,
which accepts the source `FileShareClient` as a parameter. `wsh`
connections use the same implementation for `CopyInternal` and
`CopyRemote` as they need to request the channel on the remote
destination, since we don't offer a way to pass channels as a parameter
to a remote call.

This also adds a recursive `-r` flag to `wsh file rm` to allow for
deleting a directory and all its contents.

S3 support will be addressed in a future PR.

---------

Co-authored-by: sawka <mike@commandline.dev>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-01-31 10:42:39 -08:00
..
generatego enable wsh file cross-remote copy/move (#1725) 2025-01-31 10:42:39 -08:00
generatets Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
packfiles Add license identifiers to missing files (#1806) 2025-01-22 20:06:36 -08:00
server Don't attempt to build SIGUSR1 handler for Windows, add it to WSH (#1871) 2025-01-29 12:42:55 -08:00
test Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
wsh enable wsh file cross-remote copy/move (#1725) 2025-01-31 10:42:39 -08:00