waveterm/frontend/app/store
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
..
contextmenu.ts Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
global.ts fix: connection status map wrapped in atom (#1783) 2025-01-20 21:45:45 -08:00
jotaiStore.ts Remove global.ts dependency from emain (#1003) 2024-10-10 10:12:42 -07:00
keymodel.ts Close open modals on escape keydown (#1809) 2025-01-23 12:23:53 -08:00
modalmodel.ts Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
services.ts wsh file overhaul without cross-remote copy and S3 (#1790) 2025-01-22 14:50:09 -08:00
wos.ts Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
wps.ts Add license identifiers to missing files (#1806) 2025-01-22 20:06:36 -08:00
ws.ts Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
wshclient.ts Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
wshclientapi.ts enable wsh file cross-remote copy/move (#1725) 2025-01-31 10:42:39 -08:00
wshrouter.ts Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
wshrpcutil.ts Happy new year! (#1684) 2025-01-04 20:56:57 -08:00