mirror of
https://github.com/denoland/deno.git
synced 2025-08-03 10:33:54 +00:00
chore(cli): move away from PathBuf in clap (#22036)
This commit is contained in:
parent
85116226b3
commit
5403e4f06b
7 changed files with 168 additions and 167 deletions
|
@ -1476,16 +1476,34 @@ impl CliOptions {
|
|||
deny_hrtime: self.flags.deny_hrtime,
|
||||
allow_net: self.flags.allow_net.clone(),
|
||||
deny_net: self.flags.deny_net.clone(),
|
||||
allow_ffi: self.flags.allow_ffi.clone(),
|
||||
deny_ffi: self.flags.deny_ffi.clone(),
|
||||
allow_read: self.flags.allow_read.clone(),
|
||||
deny_read: self.flags.deny_read.clone(),
|
||||
allow_ffi: convert_option_str_to_path_buf(
|
||||
&self.flags.allow_ffi,
|
||||
self.initial_cwd(),
|
||||
),
|
||||
deny_ffi: convert_option_str_to_path_buf(
|
||||
&self.flags.deny_ffi,
|
||||
self.initial_cwd(),
|
||||
),
|
||||
allow_read: convert_option_str_to_path_buf(
|
||||
&self.flags.allow_read,
|
||||
self.initial_cwd(),
|
||||
),
|
||||
deny_read: convert_option_str_to_path_buf(
|
||||
&self.flags.deny_read,
|
||||
self.initial_cwd(),
|
||||
),
|
||||
allow_run: self.flags.allow_run.clone(),
|
||||
deny_run: self.flags.deny_run.clone(),
|
||||
allow_sys: self.flags.allow_sys.clone(),
|
||||
deny_sys: self.flags.deny_sys.clone(),
|
||||
allow_write: self.flags.allow_write.clone(),
|
||||
deny_write: self.flags.deny_write.clone(),
|
||||
allow_write: convert_option_str_to_path_buf(
|
||||
&self.flags.allow_write,
|
||||
self.initial_cwd(),
|
||||
),
|
||||
deny_write: convert_option_str_to_path_buf(
|
||||
&self.flags.deny_write,
|
||||
self.initial_cwd(),
|
||||
),
|
||||
prompt: !self.no_prompt(),
|
||||
}
|
||||
}
|
||||
|
@ -1584,29 +1602,29 @@ impl CliOptions {
|
|||
}
|
||||
|
||||
pub fn watch_paths(&self) -> Vec<PathBuf> {
|
||||
let mut paths = if let DenoSubcommand::Run(RunFlags {
|
||||
let mut full_paths = Vec::new();
|
||||
if let DenoSubcommand::Run(RunFlags {
|
||||
watch: Some(WatchFlagsWithPaths { paths, .. }),
|
||||
..
|
||||
}) = &self.flags.subcommand
|
||||
{
|
||||
paths.clone()
|
||||
} else {
|
||||
Vec::with_capacity(2)
|
||||
};
|
||||
full_paths.extend(paths.iter().map(|path| self.initial_cwd.join(path)));
|
||||
}
|
||||
|
||||
if let Ok(Some(import_map_path)) = self
|
||||
.resolve_specified_import_map_specifier()
|
||||
.map(|ms| ms.and_then(|ref s| s.to_file_path().ok()))
|
||||
{
|
||||
paths.push(import_map_path);
|
||||
full_paths.push(import_map_path);
|
||||
}
|
||||
if let Some(specifier) = self.maybe_config_file_specifier() {
|
||||
if specifier.scheme() == "file" {
|
||||
if let Ok(path) = specifier.to_file_path() {
|
||||
paths.push(path);
|
||||
full_paths.push(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
paths
|
||||
full_paths
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1784,6 +1802,20 @@ pub fn npm_pkg_req_ref_to_binary_command(
|
|||
binary_name.to_string()
|
||||
}
|
||||
|
||||
fn convert_option_str_to_path_buf(
|
||||
flag: &Option<Vec<String>>,
|
||||
initial_cwd: &Path,
|
||||
) -> Option<Vec<PathBuf>> {
|
||||
if let Some(allow_ffi_paths) = &flag {
|
||||
let mut full_paths = Vec::new();
|
||||
full_paths
|
||||
.extend(allow_ffi_paths.iter().map(|path| initial_cwd.join(path)));
|
||||
Some(full_paths)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use crate::util::fs::FileCollector;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue