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