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 changelog;
14pub mod cli;
15pub mod cli_args;
16pub mod clipboard;
17pub mod connection;
18pub mod containers;
19pub mod demo;
20pub mod demo_flag;
21pub mod event;
22pub mod file_browser;
23pub mod fs_util;
24pub mod fuzzy;
25pub mod handler;
26pub mod history;
27pub mod import;
28pub mod key_activity;
29pub mod key_push;
30pub mod logging;
31pub mod mcp;
32pub mod messages;
33pub mod onboarding;
34pub mod ping;
35pub mod preferences;
36pub mod providers;
37pub mod quick_add;
38pub mod runtime;
39pub mod snippet;
40pub mod snippet_impact;
41pub mod snippet_runs;
42pub mod ssh_config;
43pub mod ssh_context;
44pub mod ssh_keys;
45#[cfg(target_os = "linux")]
46pub(crate) mod tcp_diag;
47pub mod tui;
48pub mod tui_loop;
49pub mod tunnel;
50pub mod tunnel_live;
51pub mod ui;
52pub mod update;
53pub mod vault_ssh;
54
55// Re-export runtime helpers at crate root so existing `crate::set_sync_summary`
56// call sites in library modules (handler, tui_loop, cli, app/hosts) keep
57// resolving without path changes.
58pub use runtime::helpers::*;
59
60#[cfg(test)]
61#[path = "visual_regression_tests.rs"]
62mod visual_regression_tests;