Commit Graph

122 Commits

Author SHA1 Message Date
Christian Visintin
024f156fc8 build: replace version-compare crate with semver
closes #399
2026-03-21 11:13:56 +01:00
Christian Visintin
8a0dfc2b58 chore: 1.0.0 version into manifests 2026-03-20 17:12:04 +01:00
Christian Visintin
1461a68bb3 refactor: migrate from mod.rs to named module files 2026-02-28 14:03:56 +00:00
Christian Visintin
ba034e6518 refactor: replace lazy_static with std::sync::LazyLock 2026-02-28 13:51:28 +00:00
Christian Visintin
97a2240cf7 fix: correct typos in BadSytax and theme_provider log messages 2026-02-28 13:50:56 +00:00
Christian Visintin
be237c39a6 fix: replace panics reachable from user input with proper error handling 2026-02-28 13:48:30 +00:00
Christian Visintin
a252caa66b refactor: FileTransferActivity pane-agnostic dispatch (#386)
Comprehensive design for incremental refactoring of the 13k-line
FileTransferActivity god-struct using a unified Pane abstraction.
Detailed step-by-step plan covering 6 phases: split monoliths,
error handling, Pane struct, action dedup, session split, view reorg.
Extract 26 popup components from the monolithic 1,868-line popups.rs
into 20 individual files under popups/. Each file contains one or two
related components with their own imports. The popups.rs module file
now contains only module declarations and re-exports.
Replace 8 panic!() calls with error!() logging and early returns/fallthrough.
These panics documented invariants (e.g. "this tab can't do X") but would crash
the app if somehow triggered. Error logging is safer and more resilient.
Replace raw FileExplorer fields in Browser with Pane structs that bundle
the explorer and connected state. Move host_bridge_connected and
remote_connected from FileTransferActivity into the panes. Add navigation
API (fs_pane, opposite_pane, is_find_tab) for future unification tasks.
Rename private get_selected_file to get_selected_file_by_id and add three
new unified methods (get_selected_entries, get_selected_file, is_selected_one)
that dispatch based on self.browser.tab(). Old per-tab methods are kept for
now until their callers are migrated in subsequent tasks.
Collapse _local_/_remote_ action method pairs (mkdir, delete, symlink,
chmod, rename, copy) into unified methods that branch internally on
is_local_tab(). This halves the number of action methods and simplifies
the update.rs dispatch logic. Also unifies ShowFileInfoPopup and
ShowChmodPopup dispatching to use get_selected_entries().
Move `host_bridge` and `client` filesystem fields from FileTransferActivity
into the Pane struct, enabling tab-agnostic dispatch via `fs_pane()`/
`fs_pane_mut()`. This eliminates most `is_local_tab()` branching across
15+ action files.
Key changes:
- Add `fs: Box<dyn HostBridge>` to Pane, remove from FileTransferActivity
- Replace per-side method pairs with unified pane-dispatched methods
- Unify navigation (changedir, reload, scan, file_exists, has_file_changed)
- Replace 147-line popup if/else chain with data-driven priority table
- Replace assert!/panic!/unreachable! with proper error handling
- Fix typo "filetransfer_activiy" across ~29 files
- Add unit tests for Pane

Net result: -473 lines, single code path for most file operations.
2026-02-27 21:58:31 +01:00
Christian Visintin
b04976bde3 fix: Updated dependencies to allow build on NetBSD
closes #371
2025-12-20 16:33:50 +01:00
Christian Visintin
f4156a5059 feat: Import bookmarks from ssh config with a CLI command (#364)
Some checks failed
Linux / build (push) Has been cancelled
MacOS / build (push) Has been cancelled
Windows / build (push) Has been cancelled
* feat: Import bookmarks from ssh config with a CLI command

Use import-ssh-hosts to import all the possible hosts by the configured ssh config or the default one on your machine

closes #331
2025-11-08 15:32:52 +01:00
Christian Visintin
4bebec369f fix: Issues with update checks (#363)
Some checks failed
Linux / build (push) Has been cancelled
MacOS / build (push) Has been cancelled
Windows / build (push) Has been cancelled
Removed error popup message if failed to check for updates.
Prevent long timeouts when checking for updates if the network is down or the DNS is not working.

closes #354
2025-10-02 21:27:51 +02:00
Christian Visintin
81ae0035c3 Fix SSH auth with id keys (#347)
I fixed the id_rsa/id_ed25519 SSH auth issue on Mac and now termscp should respect the key-based authentication, just like the regular ssh user@hostname, without the need for any ssh agents.

---

Co-authored-by: Lucas Czekaj <lukasz@czekaj.us>
2025-06-08 18:34:59 +02:00
veeso
783da22ca2 feat: **Updated dependencies** and updated the Rust edition to 2024 2025-06-08 18:00:42 +02:00
Christian Visintin
ec75ae1486 feat: 132 queuing transfers (#332)
the logic of selecting files has been extended!
From now on selecting file will put the files into a transfer queue, which is shown on the bottom panel.
When a file is selected the file is added to the queue with a destination path, which is the **current other explorer path at the moment of selection.
It is possible to navigate to the transfer queue by using `P` and pressing `ENTER` on a file will remove it from the transfer queue.Other commands will work as well on the transfer queue, like `COPY`, `MOVE`, `DELETE`, `RENAME`.

closes #132
2025-03-23 14:36:13 +01:00
veeso
368570592f feat(cli): added --wno-keyring flag to disable keyring
Some checks are pending
Linux / build (push) Waiting to run
MacOS / build (push) Waiting to run
Windows / build (push) Waiting to run
closes #308
2025-03-22 13:44:02 +01:00
veeso
1f377b242d fix(log): add suppaftp/pavao/kube to allowed logs
Some checks failed
Windows / build (push) Has been cancelled
Linux / build (push) Has been cancelled
MacOS / build (push) Has been cancelled
fix #330
2025-03-17 18:59:47 +01:00
veeso
b0f314837e build(deps): updated dependencies and edition to 2024 2025-03-15 14:15:45 +01:00
veeso
099e2154ba fix: unused import isolated tests 2024-11-13 15:57:49 +01:00
veeso
69f821baef fix: cfg unix forbidden in rust .82
Some checks are pending
Install.sh / build (push) Waiting to run
Linux / build (push) Waiting to run
MacOS / build (push) Waiting to run
Windows / build (push) Waiting to run
2024-10-21 10:32:50 +02:00
Christian Visintin
c05ef32270 fix: issue 292 New version alert was not displayed due to a semver regex issue. (#300) 2024-10-14 10:43:47 +02:00
Christian Visintin
7eb913ec7b fix: tuirealm 2.x (#299) 2024-10-14 09:55:52 +02:00
Christian Visintin
aab266a661 285 feature request multi host (#293) 2024-10-07 16:27:45 +02:00
Christian Visintin
8e2ffeabce fix: isolated-tests feature to run tests for releasing on distributions which run in isolated environments (#286)
* fix: `isolated-tests` feature to run tests for releasing on distributions which run in isolated environments

* fix: cond
2024-10-03 12:17:03 +02:00
Christian Visintin
ae1638ee17 feat: Pods and container explorer for Kube protocol (#281) 2024-10-02 12:24:46 +02:00
veeso
d319a2fae4 fix: notify 6 2024-10-02 10:25:30 +02:00
veeso
72a5703a08 fix: keyring test not passing macos 2024-10-02 10:09:09 +02:00
veeso
17719ea370 feat: init 0.15 2024-09-30 12:06:03 +02:00
Christian Visintin
679a829744 233 feature request subcommands (#234) 2024-03-01 10:01:25 +01:00
Christian Visintin
20c3e22572 [BUG] - termscp not respecting port in ssh config (#216) 2023-10-01 16:12:43 +02:00
Christian Visintin
044f2436f8 Don't prompt for password if a ssh key is set for that host (#186)
* feat: don't ask password if a ssh key is set for that host

* fix: User from ssh config was not used as it should

* fix: forgot a file
2023-05-13 16:09:37 +02:00
Christian Visintin
b7369162d2 SMB support (#184)
* feat: smb client

* fix: smb connection

* fix: smbclient deps

* feat: SMB mentions to user manual

* feat: changelog

* dlib macos

* fix: removed smb support from macos :(

* fix: restored libsmbclient build

* fix: strange lint message

* fix: macos build smb

* fix: macos build smb

* fix: macos tests

* fix: macos lint

* feat: SMB windows support

* fix: windows tests
2023-05-13 15:00:16 +02:00
Christian Visintin
b4fa50a666 feat: allow unknown fields in ssh2 configuration file (#181) 2023-05-10 09:27:54 +02:00
veeso
c5eeae74b7 fmt 2023-05-09 15:40:21 +02:00
Christian Visintin
9009002b6e debug log belongs in cache directory not config directory (#179)
* log files are now written to cache dir instead of config dir

* lint

* fmt
2023-05-09 15:32:42 +02:00
veeso
e1a2255a58 feat: dependencies up-to-date 2023-04-18 11:58:10 +02:00
Christian Visintin
1ecef6fc16 issue 150: some issues with configuration (#151)
* issue 150: some issues with configuration
2023-02-28 10:45:07 +01:00
veeso
d5038a22ee fixed tests 2023-02-11 12:45:12 +01:00
Christian Visintin
c0bc493d21 125 installation missing aarch64 linux build (#146)
aarch64 build
2023-02-11 12:26:43 +01:00
Christian Visintin
1c75c7d386 SSH configuration path is not ~/.ssh/config by default (#145)
SSH configuration path is not `~/.ssh/config` by default
2023-02-11 12:23:57 +01:00
Christian Visintin
251b125cbb 126 new feature termscp doesnt use id rsa default ssh private key to authenticate to sftp scp endpoint (#144)
fixed issue 126 <https://github.com/veeso/termcp/issues/126>
2023-02-11 12:23:56 +01:00
veeso
efd2235ff3 fmt 2023-02-11 12:23:56 +01:00
veeso
4d5f3a6b63 lint 2023-02-11 12:23:56 +01:00
veeso
64e3848c97 Use ssh2 config IdentityFile as fallback for key based authentication 2022-08-30 17:47:55 +02:00
veeso
833cd7d3ba Fixed version comparison when going above 0.9 2022-08-30 15:54:37 +02:00
veeso
a22c5025d7 lint 2022-08-17 10:33:31 +02:00
veeso
bb95c9a4d0 updated dependencies 2022-06-09 15:11:55 +02:00
veeso
0057a657d2 removed license headers 2022-06-09 14:28:02 +02:00
Christian Visintin
816270d545 Fs watcher (#113)
fs watcher
2022-06-09 13:03:02 +02:00
veeso
f28dba7660 added new s3 params 2022-03-05 11:06:14 +01:00
veeso
332284fec3 keyring 1.0.0 2022-01-06 10:44:34 +01:00
Christian Visintin
7d55563556 Aws s3 connection parameters extension (#89)
* Aws s3 connection parameters extension

* Changed 'save password?' popup to 'change secrets?'

* missing docs
2022-01-06 10:44:34 +01:00