4 个版本 (2 个破坏性更改)

0.3.0 2021 年 12 月 2 日
0.2.0 2021 年 11 月 18 日
0.1.1 2021 年 3 月 13 日
0.1.0 2021 年 3 月 13 日

配置 中排名第 803

Download history 15/week @ 2024-03-11 10/week @ 2024-03-18 14/week @ 2024-03-25 31/week @ 2024-04-01 14/week @ 2024-04-08 13/week @ 2024-04-15 33/week @ 2024-04-22 17/week @ 2024-04-29 6/week @ 2024-05-06 16/week @ 2024-05-13 97/week @ 2024-05-20 20/week @ 2024-05-27 16/week @ 2024-06-03 15/week @ 2024-06-10 10/week @ 2024-06-17 15/week @ 2024-06-24

每月下载量 59
3 crates 中使用

MIT/Apache

140KB
942 代码行

🌐 SSH Cfg

Crates.io docs.rs CI

异步解析 ~/.ssh/config

use ssh_cfg::{SshConfigParser, SshOptionKey};
use tokio::runtime;

async fn parse_ssh_config() -> Result<(), Box<dyn std::error::Error>> {
    let ssh_config = SshConfigParser::parse_home().await?;

    // Print first host config
    if let Some((first_host, host_config)) = ssh_config.iter().next() {
        println!("Host: {}", first_host);

        // Print its configured SSH key if any
        if let Some(identity_file) = host_config.get(&SshOptionKey::IdentityFile) {
            println!("  {} {}", SshOptionKey::IdentityFile, identity_file);
        }
    }

    // Print all host configs
    println!();
    println!("{:#?}", ssh_config);

    Ok(())
}

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let rt = runtime::Builder::new_current_thread().build()?;
    rt.block_on(parse_ssh_config())
}

当前值存储为 String。理想情况下,我们会将它们解析为强大的数据模型。

许可证

根据以下之一许可

由您选择。

贡献

除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,根据 Apache-2.0 许可证定义,将根据上述许可证双许可,不附加任何额外条款或条件。

依赖项

~2.5MB
~39K SLoC