Parent Issue
Part of #118 (FUSE-based Archive & Remote Browsing Feature)
Summary
Add rclone support for browsing FTP, S3, GCS, Azure, Dropbox and 40+ other cloud providers.
Dependencies
Requires #122 (SFTP remote connections)
Tasks
MountManager
Menu Integration
App Methods
Dynamic Menu State
Testing
- Test
list_rclone_remotes() parses output correctly
- Test
mount_rclone() calls rclone with correct arguments
- Test
mount_rclone() tracks mount with mount_type='rclone'
- Test
setup_rclone_remote() creates remote config
- Test rclone menu items exist in Connect menu
- Test menu items disabled when rclone unavailable
Files
- Modify:
tnc/mount.py
- Modify:
tnc/app.py
- Modify:
tnc/menu.py
- Modify:
tests/test_mount.py
Parent Issue
Part of #118 (FUSE-based Archive & Remote Browsing Feature)
Summary
Add rclone support for browsing FTP, S3, GCS, Azure, Dropbox and 40+ other cloud providers.
Dependencies
Requires #122 (SFTP remote connections)
Tasks
MountManager
Implement
list_rclone_remotes() -> list[str]rclone listremotesImplement
mount_rclone(remote_spec: str) -> Path | Nonerclone mount remote_spec /mount/point --daemonactive_mountswithmount_type='rclone'Implement
setup_rclone_remote(name: str, type: str, config: dict) -> boolrclone config createImplement
can_mount_rclone() -> boolself.tools.rcloneMenu Integration
Add new Action enum values:
Expand Connect menu:
Add action mappings to
MENU_ACTION_MAPApp Methods
Handle
Action.RCLONE_REMOTES- show list of configured remotesHandle
Action.RCLONE_S3- prompt for S3 credentialsHandle
Action.RCLONE_GCS- prompt for GCS credentialsHandle
Action.RCLONE_AZURE- prompt for Azure credentialsHandle
Action.RCLONE_FTP- prompt for FTP host/credentialsImplement
App._show_rclone_remotes():mount_manager.list_rclone_remotes()Implement
App._prompt_rclone_setup(type: str):mount_manager.setup_rclone_remote()Dynamic Menu State
Testing
list_rclone_remotes()parses output correctlymount_rclone()calls rclone with correct argumentsmount_rclone()tracks mount withmount_type='rclone'setup_rclone_remote()creates remote configFiles
tnc/mount.pytnc/app.pytnc/menu.pytests/test_mount.py