[−][src]Crate envmnt
envmnt
Environment variables utility functions.
This library has many helper functions to access/modify/check environment variables.
Examples
Get/Set/Remove environment variables
extern crate envmnt; use envmnt::ExpansionType; fn main() { if !envmnt::exists("MY_ENV_VAR") { envmnt::set("MY_ENV_VAR", "SOME VALUE"); } let mut value = envmnt::get_or("MY_ENV_VAR", "DEFAULT_VALUE"); println!("Env Value: {}", &value); value = envmnt::get_or_panic("MY_ENV_VAR"); println!("Env Value: {}", &value); let pre_value = envmnt::get_set("MY_ENV_VAR", "SOME NEW VALUE"); let value = envmnt::get_or("MY_ENV_VAR", "DEFAULT_VALUE"); println!("New Env Value: {}", &value); println!("Previous Env Value: {:?}", &pre_value); let var_was_set = envmnt::set_optional("MY_ENV_VAR", &Some("OPTIONAL VALUE")); println!("Env Was Modified: {}", var_was_set); let all_vars = envmnt::vars(); // returned as Vec<(String, String)> for (key, value) in all_vars { println!("{}: {}", key, value); } envmnt::set("MY_ENV_VAR2", "SOME VALUE2"); let value = envmnt::get_any(&vec!["MY_ENV_VAR1", "MY_ENV_VAR2"], "default"); println!("MY_ENV_VAR1 exists: {}", envmnt::exists("MY_ENV_VAR1")); println!("MY_ENV_VAR2 exists: {}", envmnt::exists("MY_ENV_VAR2")); println!("Found value: {}", value); let value = envmnt::expand("Env: MY_ENV value is: ${MY_ENV}", ExpansionType::Unix); println!("Expanded: {}", &value); }
Get/Set boolean environment variables and other comparisons
extern crate envmnt; fn main() { envmnt::set_bool("FLAG_VAR", true); let mut flag_value = envmnt::is_or("FLAG_VAR", false); println!("Bool Flag: {}", &flag_value); flag_value = envmnt::is("FLAG_VAR"); assert!(flag_value); envmnt::set_bool("FLAG_VAR", true); assert!(envmnt::is_equal("FLAG_VAR", "true")); envmnt::set("MY_ENV_VAR", "SOME VALUE"); let same = envmnt::is_equal("MY_ENV_VAR", "SOME VALUE"); println!("Value Is Same: {}", &same); let mut contains = envmnt::contains("MY_ENV_VAR", "_ENV_"); println!("Value Contained: {}", &contains); contains = envmnt::contains_ignore_case("MY_ENV_VAR", "_env_"); println!("Value Contained (case insensitive): {}", &contains); }
Get/Set list environment variables
extern crate envmnt; fn main() { envmnt::set_list( "LIST_TEST_ENV", &vec!["1".to_string(), "2".to_string(), "3".to_string()], ); let mut values = envmnt::get_list("LIST_TEST_ENV").unwrap(); println!("List Values: {:?}", values); let mut same = envmnt::is_equal("LIST_TEST_ENV", "1;2;3"); println!("Same: {}", same); let mut options = envmnt::ListOptions::new(); options.separator = Some(",".to_string()); envmnt::set_list_with_options( "LIST_TEST_ENV", &vec!["1".to_string(), "2".to_string(), "3".to_string()], &options, ); values = envmnt::get_list_with_options("LIST_TEST_ENV", &options).unwrap(); println!("List Values: {:?}", values); same = envmnt::is_equal("LIST_TEST_ENV", "1,2,3"); println!("Same: {}", same); }
Bulk Operations
extern crate envmnt; extern crate indexmap; use indexmap::IndexMap; fn main() { let mut env: IndexMap<String, String> = IndexMap::new(); env.insert("ENV_VAR1".to_string(), "MY VALUE".to_string()); env.insert("ENV_VAR2".to_string(), "MY VALUE2".to_string()); envmnt::set_all(&env); let value = envmnt::get_or_panic("ENV_VAR1"); println!("Value Is: {}", &value); let mut found = envmnt::is_any_exists(&vec!["ENV_VAR1", "ENV_VAR2"]); println!("Any Found: {}", &found); found = envmnt::is_all_exists(&vec!["ENV_VAR1", "ENV_VAR2"]); println!("All Found: {}", &found); envmnt::remove_all(&vec!["ENV_VAR1", "ENV_VAR2"]); found = envmnt::is_any_exists(&vec!["ENV_VAR1", "ENV_VAR2"]); println!("Any Found: {}", &found); env = IndexMap::new(); env.insert("ENV_VAR1".to_string(), "MY VALUE".to_string()); env.insert("ENV_VAR2".to_string(), "MY VALUE2".to_string()); let eval_env = |value: String| { let mut buffer = String::from("VALUE-"); buffer.push_str(&value); buffer }; envmnt::evaluate_and_set_all(&env, eval_env); let value = envmnt::get_or_panic("ENV_VAR1"); println!("Value Is: {}", &value); }
File Operations
extern crate envmnt; fn main() { let mut output = envmnt::load_file("./src/test/var.env"); assert!(output.is_ok()); let eval_env = |value: String| { let mut buffer = String::from("PREFIX-"); buffer.push_str(&value); buffer }; output = envmnt::evaluate_and_load_file("./src/test/var.env", eval_env); assert!(output.is_ok()); }
Installation
In order to use this library, just add it as a dependency:
[dependencies]
envmnt = "*"
Contributing
License
Developed by Sagie Gur-Ari and licensed under the Apache 2 open source license.
Modules
environment | environment |
Functions
contains | Returns true if the provided environment variable is defined and contains the provided value. |
contains_ignore_case | Returns true if the provided environment variable is defined and contains the provided value regardless of the case. |
evaluate_and_load_file | Parses the provided env file and loads all environment variables. |
evaluate_and_set_all | Sets all the provided env key/value pairs. |
exists | Returns true environment variable is defined. |
expand | Expands the provided string value by replacing the environment variables defined in it. The syntax of the environment variables is based on the type requested. |
get_any | Returns the first environment variable found. |
get_list | Returns the requested environment variable as a string vector. |
get_list_with_options | Returns the requested environment variable as a string vector. |
get_or | Returns the environment variable value or if is not defined, the default value will be returned. |
get_or_panic | Returns the environment variable value. If the variable is not defined, this function will panic. |
get_remove | Removes the provided environment variable and returns its previous value (if any). |
get_set | Sets the environment variable value and returns the previous value. |
is | Returns false if environment variable value if falsy. The value is falsy if it is one of the following: |
is_all_exists | Returns true if all of environment variables are defined. |
is_any_exists | Returns true if any of environment variables is defined. |
is_equal | Returns true if the provided environment variable is defined and equals the provided value. |
is_or | Returns false if environment variable value if falsy. The value is falsy if it is one of the following: |
load_file | Parses the provided env file and loads all environment variables. |
parse_file | Parses the provided env file and returns its content as a map of key/value. |
remove | Removes the provided environment variable. |
remove_all | Removes all provided environment variables. |
set | Sets the environment variable value. |
set_all | Sets all the provided env key/value pairs. |
set_bool | Sets the environment variable with a true/false value as string. |
set_list | Sets the provided string vector as an environment variable. |
set_list_with_options | Sets the provided string vector as an environment variable. |
set_optional | Sets the environment variable if the provided option contains a value. |
vars | Returns all environment variables as a vector. |
Type Definitions
ExpansionType | Expansion Type - unix/windows style |
ListOptions | Get/Set list options |