Figment FileEnv Provider   ![ci.svg] ![crates.io] ![docs.rs]

Figment provider for optionally file-based env config values.

```rust use serde::Deserialize; use figment::{Figment, providers::Env}; use figmentfileenv_provider::FileEnv;

[derive(Deserialize)]

struct Config { frobnicate: String, foo: u64, }

figment::Jail::expect_with(|jail| {

jail.createfile("secretfile", "32")?;

jail.setenv("APPFROBNICATE", "with gusto");

jail.setenv("APPFOOFILE", "secretfile");

let config: Config = Figment::new() .merge(FileEnv::fromenv(Env::prefixed("APP"))) .extract()?;

Ok(())

});

```

Overview

This crate contains the FileEnv provider for Figment, to allow loading configuration values from either environment variables or files. This is especially useful for secret management in combination with containers.

For instance, to pass an API key to the configuration, you could use either the environment variable API_KEY=abc123deadbeef, or you could write that API key to a file /secrets/api_key and pass the env variable API_KEY_FILE=/secrets/api_key.

See the documentation for a detailed usage guide and more information.

Usage

Add the following to your Cargo.toml:

toml [dependencies] figment = { version = "0.10", features = ["env"] } figment_file_env_provider = { version = "0.1" }

License

Figmentfileenv_provider is licensed under either of the MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT).