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
每月下载量 59
在 3 crates 中使用
140KB
942 代码行
🌐 SSH Cfg
异步解析 ~/.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 License,版本 2.0,(LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,根据 Apache-2.0 许可证定义,将根据上述许可证双许可,不附加任何额外条款或条件。
依赖项
~2.5MB
~39K SLoC