1#![forbid(unsafe_code)]
4use crate::cli::CliArgs;
10use anyhow::Result;
11
12pub async fn run(args: CliArgs) -> Result<()> {
14 crate::cli::dispatch_impl(args).await
15}
16
17pub mod exec {
19 pub use crate::vps::{
20 run_exec as run, run_su_exec as run_su, run_sudo_exec as run_sudo, ExecOptions,
21 };
22}
23
24pub mod vps {
26 pub use crate::vps::{run_connect as connect, run_vps_command as run};
27}
28
29pub mod scp {
31 pub use crate::scp::{run_scp as run, ScpOptions};
32}
33
34#[cfg(feature = "ssh-real")]
36pub mod sftp {
37 pub use crate::sftp::{run_sftp as run, SftpOptions};
38}
39
40pub mod tunnel {
42 pub use crate::tunnel::run_tunnel as run;
43}
44
45pub mod health {
47 pub use crate::vps::run_health_check as run;
48}
49
50pub mod secrets {
52 pub use crate::vps::run_secrets_command as run;
53}
54
55pub mod completions {
57 pub use crate::cli::generate_completions as run;
58}