waveterm/pkg/util
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
..
colprint wsh file overhaul without cross-remote copy and S3 (#1790) 2025-01-22 14:50:09 -08:00
daystr Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
dbutil Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
ds fail any rpc call which blocks the runServer loop for more than 1s (#1861) 2025-01-27 22:38:19 -08:00
envutil Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
fileutil enable wsh file cross-remote copy/move (#1725) 2025-01-31 10:42:39 -08:00
iochan enable wsh file cross-remote copy/move (#1725) 2025-01-31 10:42:39 -08:00
iterfn wsh file overhaul without cross-remote copy and S3 (#1790) 2025-01-22 14:50:09 -08:00
logview Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
migrateutil Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
packetparser WSL Updates for New Architecture (#1756) 2025-01-16 15:54:58 -08:00
pamparse Simplify regex and fix tests for pamparse (#1712) 2025-01-10 13:53:24 -08:00
shellutil add jwt token back to wsl connections (#1841) 2025-01-24 14:24:15 -08:00
sigutil Don't attempt to build SIGUSR1 handler for Windows, add it to WSH (#1871) 2025-01-29 12:42:55 -08:00
syncbuf Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
tarcopy enable wsh file cross-remote copy/move (#1725) 2025-01-31 10:42:39 -08:00
utilfn send SIGUSR1 to dump all goroutines (for debugging) (#1860) 2025-01-27 18:01:02 -08:00
wavefileutil wsh file overhaul without cross-remote copy and S3 (#1790) 2025-01-22 14:50:09 -08:00