diff options
author | Ćukasz Czerniawski <33061335+lczerniawski@users.noreply.github.com> | 2024-03-15 00:53:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-14 23:53:46 +0000 |
commit | 5403e4f06b2bb9da60c67b7c1909f4d412c20307 (patch) | |
tree | feffd2a905c6b01d0bf2599cd6c72d04286636f1 /cli/tools/upgrade.rs | |
parent | 85116226b3b5faae0aa85ce5d053487e82dcc824 (diff) |
chore(cli): move away from PathBuf in clap (#22036)
Diffstat (limited to 'cli/tools/upgrade.rs')
-rw-r--r-- | cli/tools/upgrade.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/cli/tools/upgrade.rs b/cli/tools/upgrade.rs index 86a271c1f..6bb4606d3 100644 --- a/cli/tools/upgrade.rs +++ b/cli/tools/upgrade.rs @@ -379,8 +379,11 @@ pub async fn upgrade( let factory = CliFactory::from_flags(flags)?; let client = factory.http_client(); let current_exe_path = std::env::current_exe()?; + let full_path_output_flag = upgrade_flags + .output + .map(|output| factory.cli_options().initial_cwd().join(output)); let output_exe_path = - upgrade_flags.output.as_ref().unwrap_or(¤t_exe_path); + full_path_output_flag.as_ref().unwrap_or(¤t_exe_path); let permissions = if let Ok(metadata) = fs::metadata(output_exe_path) { let permissions = metadata.permissions(); @@ -430,7 +433,7 @@ pub async fn upgrade( }; if !upgrade_flags.force - && upgrade_flags.output.is_none() + && full_path_output_flag.is_none() && current_is_passed { log::info!("Version {} is already installed", crate::version::deno()); @@ -464,7 +467,7 @@ pub async fn upgrade( }; if !upgrade_flags.force - && upgrade_flags.output.is_none() + && full_path_output_flag.is_none() && current_is_most_recent { log::info!( @@ -520,7 +523,7 @@ pub async fn upgrade( } } else { let output_exe_path = - upgrade_flags.output.as_ref().unwrap_or(¤t_exe_path); + full_path_output_flag.as_ref().unwrap_or(¤t_exe_path); let output_result = if *output_exe_path == current_exe_path { replace_exe(&new_exe_path, output_exe_path) } else { |