aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGuillaume Pasquet <dev@etenil.net>2021-11-19 22:33:56 +0000
committerGuillaume Pasquet <dev@etenil.net>2021-11-19 22:33:56 +0000
commitda0cd2fe49a4fba917516fd637fef6be6c304896 (patch)
treeae05d56d59edb1207e3b29ffbb76eede7bc8ec46 /src
parent8f0d2e928981f06b0f6d53da89356ba5baeb8422 (diff)
Added Context structure.
Diffstat (limited to 'src')
-rw-r--r--src/main.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
index b6255d7..81cb18d 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -2,11 +2,33 @@ mod barbfile;
use jsonformat::{format_json, Indentation};
+use std::collections::HashMap;
+use std::env;
use std::fs;
use std::str::FromStr;
use ureq;
+struct Context {
+ vars: HashMap<String, String>,
+}
+
+impl Context {
+ pub fn new() -> Context {
+ Context {
+ vars: HashMap::new(),
+ }
+ }
+
+ pub fn get_var(&self, name: String) -> Option<String> {
+ self.vars
+ .get(&name)
+ .map(|val| val.clone())
+ .or_else(|| env::var(name).ok())
+ }
+}
+
fn main() {
+ let mut context = Context::new();
let bfile = barbfile::BarbFile::from_str(
fs::read_to_string("test.barb")
.expect("Failed to read file")