Skip to main content

purple_ssh/
lib.rs

1// Library crate root. Hosts every module so the binary entry (src/main.rs)
2// becomes a thin shim and integration tests can reach the same surface.
3
4// `too_many_lines` (threshold 400 via clippy.toml) gates production functions
5// against bloat. Test builds are exempt: long test bodies and fixtures are
6// normal and splitting them adds noise, not clarity.
7#![cfg_attr(test, allow(clippy::too_many_lines))]
8
9pub mod animation;
10pub mod app;
11pub mod askpass;
12pub(crate) mod askpass_env;
13pub mod asset_gen;
14pub mod changelog;
15pub mod cli;
16pub mod cli_args;
17pub mod clipboard;
18pub mod connection;
19pub mod containers;
20pub mod demo;
21pub mod demo_flag;
22pub mod event;
23pub mod file_browser;
24pub mod fs_util;
25pub mod fuzzy;
26pub mod handler;
27pub mod history;
28pub mod import;
29pub mod key_activity;
30pub mod key_push;
31pub mod logging;
32pub mod mcp;
33pub mod messages;
34pub mod onboarding;
35pub mod ping;
36pub mod preferences;
37pub mod providers;
38pub mod quick_add;
39pub mod runtime;
40pub mod snippet;
41pub mod snippet_impact;
42pub mod snippet_runs;
43pub mod ssh_config;
44pub mod ssh_context;
45pub mod ssh_keys;
46pub mod ssh_launcher;
47#[cfg(target_os = "linux")]
48pub(crate) mod tcp_diag;
49pub mod tui;
50pub mod tui_loop;
51pub mod tunnel;
52pub mod tunnel_live;
53pub mod ui;
54pub mod update;
55pub mod vault_ssh;
56
57// Re-export runtime helpers at crate root so existing `crate::set_sync_summary`
58// call sites in library modules (handler, tui_loop, cli, app/hosts) keep
59// resolving without path changes.
60pub use runtime::helpers::*;
61
62#[cfg(test)]
63#[path = "visual_regression_tests.rs"]
64mod visual_regression_tests;