summaryrefslogtreecommitdiff
path: root/cli/tools/upgrade.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-07-23 19:00:48 -0400
committerGitHub <noreply@github.com>2024-07-23 19:00:48 -0400
commit9114a2df69da9318c4e10887553b7daf77b0fa16 (patch)
tree2309817e74485f9fe8f7b79238afa026070b79df /cli/tools/upgrade.rs
parent6055629ee7f48a4e887392ccac13788aa4008249 (diff)
fix(upgrade): do not error if config in cwd invalid (#24689)
``` > deno upgrade error: Unsupported lockfile version 'invalid'. Try upgrading Deno or recreating the lockfile. V:\scratch > V:\deno\target\debug\deno upgrade Looking up latest version Local deno version 1.45.3 is the most recent release ``` Closes #24517 Closes #20729
Diffstat (limited to 'cli/tools/upgrade.rs')
-rw-r--r--cli/tools/upgrade.rs15
1 files changed, 10 insertions, 5 deletions
diff --git a/cli/tools/upgrade.rs b/cli/tools/upgrade.rs
index fd8394efa..8349f060c 100644
--- a/cli/tools/upgrade.rs
+++ b/cli/tools/upgrade.rs
@@ -371,15 +371,20 @@ async fn fetch_and_store_latest_version<
}
pub async fn upgrade(
- flags: Flags,
+ flags: Arc<Flags>,
upgrade_flags: UpgradeFlags,
) -> Result<(), AnyError> {
- let factory = CliFactory::from_flags(flags)?;
+ let factory = CliFactory::from_flags(flags);
let client = factory.http_client_provider().get_or_create()?;
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 full_path_output_flag = match &upgrade_flags.output {
+ Some(output) => Some(
+ std::env::current_dir()
+ .context("failed getting cwd")?
+ .join(output),
+ ),
+ None => None,
+ };
let output_exe_path =
full_path_output_flag.as_ref().unwrap_or(&current_exe_path);