summaryrefslogtreecommitdiff
path: root/cli/program_state.rs
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2021-01-04 23:15:52 +0000
committerGitHub <noreply@github.com>2021-01-05 00:15:52 +0100
commitcbc2108525f3a01f4a944104457939b741c9898b (patch)
tree58f85bcd8998101762623737dc272bff81cad15a /cli/program_state.rs
parent444eca80a93c2631623578c1febdedb43575a911 (diff)
feat(cli/standalone): support runtime flags for deno compile (#8738)
Diffstat (limited to 'cli/program_state.rs')
-rw-r--r--cli/program_state.rs15
1 files changed, 8 insertions, 7 deletions
diff --git a/cli/program_state.rs b/cli/program_state.rs
index 3000b355d..5eda6b3fa 100644
--- a/cli/program_state.rs
+++ b/cli/program_state.rs
@@ -20,12 +20,13 @@ use deno_runtime::permissions::Permissions;
use deno_core::error::anyhow;
use deno_core::error::get_custom_error_class;
use deno_core::error::AnyError;
+use deno_core::error::Context;
use deno_core::url::Url;
use deno_core::ModuleSource;
use deno_core::ModuleSpecifier;
use std::collections::HashMap;
use std::env;
-use std::fs::read_to_string;
+use std::fs::read;
use std::sync::Arc;
use std::sync::Mutex;
@@ -51,6 +52,7 @@ pub struct ProgramState {
pub lockfile: Option<Arc<Mutex<Lockfile>>>,
pub maybe_import_map: Option<ImportMap>,
pub maybe_inspector_server: Option<Arc<InspectorServer>>,
+ pub ca_data: Option<Vec<u8>>,
}
impl ProgramState {
@@ -59,12 +61,10 @@ impl ProgramState {
let dir = deno_dir::DenoDir::new(custom_root)?;
let deps_cache_location = dir.root.join("deps");
let http_cache = http_cache::HttpCache::new(&deps_cache_location);
- let ca_file_path =
- flags.ca_file.clone().or_else(|| env::var("DENO_CERT").ok());
-
- let ca_data: Option<String> = match ca_file_path.as_ref() {
+ let ca_file = flags.ca_file.clone().or_else(|| env::var("DENO_CERT").ok());
+ let ca_data = match &ca_file {
+ Some(ca_file) => Some(read(ca_file).context("Failed to open ca file")?),
None => None,
- Some(ca_file_path) => Some(read_to_string(ca_file_path)?),
};
let cache_usage = if flags.cached_only {
@@ -81,7 +81,7 @@ impl ProgramState {
http_cache,
cache_usage,
!flags.no_remote,
- ca_data.as_deref(),
+ ca_data.clone(),
)?;
let lockfile = if let Some(filename) = &flags.lock {
@@ -125,6 +125,7 @@ impl ProgramState {
lockfile,
maybe_import_map,
maybe_inspector_server,
+ ca_data,
};
Ok(Arc::new(program_state))
}