summaryrefslogtreecommitdiff
path: root/cli/ops
diff options
context:
space:
mode:
authorJed Fox <git@twopointzero.us>2019-10-02 11:55:28 -0400
committerRyan Dahl <ry@tinyclouds.org>2019-10-02 11:55:28 -0400
commit99eec73b4b8813c6db7cae83f5415b031de0c2c7 (patch)
tree2a64e8dd3a7ae7fc097e14bba432d71193c39c6f /cli/ops
parentc920c5f62aba7eee0f6fa70f68f701e204ac1a9c (diff)
feat: Add support for passing a key to Deno.env() (#2952)
This adds a new op to get a single env var.
Diffstat (limited to 'cli/ops')
-rw-r--r--cli/ops/os.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/cli/ops/os.rs b/cli/ops/os.rs
index 770af404c..b35b76c2a 100644
--- a/cli/ops/os.rs
+++ b/cli/ops/os.rs
@@ -103,6 +103,25 @@ pub fn op_env(
}
#[derive(Deserialize)]
+struct GetEnv {
+ key: String,
+}
+
+pub fn op_get_env(
+ state: &ThreadSafeState,
+ args: Value,
+ _zero_copy: Option<PinnedBuf>,
+) -> Result<JsonOp, ErrBox> {
+ let args: GetEnv = serde_json::from_value(args)?;
+ state.check_env()?;
+ let r = match env::var(args.key) {
+ Err(env::VarError::NotPresent) => json!([]),
+ v => json!([v?]),
+ };
+ Ok(JsonOp::Sync(r))
+}
+
+#[derive(Deserialize)]
struct Exit {
code: i32,
}