1个不稳定版本

0.1.0 2023年3月19日

#1733 in 编码

MIT 许可证

14KB
223

CLI Config

一个简单的库,提供管理命令行应用程序配置文件的工具。

安装

要在项目中使用此库,请将以下内容添加到您的 Cargo.toml 文件中

[dependencies]
cli_config = "0.1"

默认情况下,此crate支持JSON。但是,您可以通过使用以下功能标志之一或多个来启用对其他文件格式的支持

  • toml: 启用对TOML文件的支持
  • yaml: 启用对YAML文件的支持

如果您需要自定义实现,您始终可以自己实现File特质,并适应您的需求。

use cli_config::fs::File;

impl File for MyConfig {
  // ...
}

使用方法

以下是一个示例,说明如何使用此crate来管理配置文件

use cli_config::{Result, fs::JSONFile};

#[derive(Debug, Serialize, Deserialize)]
struct MyConfig {
  first_run: bool
}

impl cli_config::fs::JSONFile for MyConfig {}

impl Default for MyConfig {
    fn default() -> Self {
        MyConfig {
          first_run: true
        }
    }
}


fn main() -> Result<()> {
    let config_file = cli_config::init("my_cli_tool", "config.json")
        .ok_or("Could not locate config file")?;

    let mut config = MyConfig::load(&config_file)?;

    if config.first_run {
        // do your stuff on first run
        println!("Please login:");

        // update the config
        config.first_run = false;
        config.write(&config_file)?;
    }

    Ok(())
}

在此示例中,我们使用init函数在名为my_cli_tool的目录中查找名为config.json的配置文件的位置。如果文件不存在,该函数将创建它并填充一些默认值。

然后我们使用JSONFile特质将文件的內容加载到MyConfig结构体中,并检查用户是否运行过该程序。

许可证

此库根据MIT许可证分发。有关详细信息,请参阅LICENSE

依赖关系

~1–11MB
~87K SLoC