diff options
Diffstat (limited to 'cli/flags.rs')
-rw-r--r-- | cli/flags.rs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/cli/flags.rs b/cli/flags.rs index 897df611c..748a7f95e 100644 --- a/cli/flags.rs +++ b/cli/flags.rs @@ -59,6 +59,7 @@ pub enum DenoSubcommand { exe_name: String, module_url: String, args: Vec<String>, + force: bool, }, Repl, Run { @@ -320,6 +321,7 @@ fn install_parse(flags: &mut DenoFlags, matches: &clap::ArgMatches) { None }; + let force = matches.is_present("force"); let exe_name = matches.value_of("exe_name").unwrap().to_string(); let cmd_values = matches.values_of("cmd").unwrap(); let mut cmd_args = vec![]; @@ -336,6 +338,7 @@ fn install_parse(flags: &mut DenoFlags, matches: &clap::ArgMatches) { exe_name, module_url, args, + force, }; } @@ -580,6 +583,12 @@ fn install_subcommand<'a, 'b>() -> App<'a, 'b> { .takes_value(true) .multiple(false)) .arg( + Arg::with_name("force") + .long("force") + .short("f") + .help("Forcefully overwrite existing installation") + .takes_value(false)) + .arg( Arg::with_name("exe_name") .required(true) ) @@ -1791,6 +1800,7 @@ mod tests { exe_name: "deno_colors".to_string(), module_url: "https://deno.land/std/examples/colors.ts".to_string(), args: vec![], + force: false, }, ..DenoFlags::default() } @@ -1815,6 +1825,7 @@ mod tests { exe_name: "file_server".to_string(), module_url: "https://deno.land/std/http/file_server.ts".to_string(), args: vec![], + force: false, }, allow_net: true, allow_read: true, @@ -1824,12 +1835,13 @@ mod tests { } #[test] - fn install_with_args_and_dir() { + fn install_with_args_and_dir_and_force() { let r = flags_from_vec_safe(svec![ "deno", "install", "-d", "/usr/local/bin", + "-f", "--allow-net", "--allow-read", "file_server", @@ -1845,6 +1857,7 @@ mod tests { exe_name: "file_server".to_string(), module_url: "https://deno.land/std/http/file_server.ts".to_string(), args: svec!["arg1", "arg2"], + force: true, }, allow_net: true, allow_read: true, |