diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-07-23 19:00:48 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-23 19:00:48 -0400 |
commit | 9114a2df69da9318c4e10887553b7daf77b0fa16 (patch) | |
tree | 2309817e74485f9fe8f7b79238afa026070b79df /cli/tools/upgrade.rs | |
parent | 6055629ee7f48a4e887392ccac13788aa4008249 (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.rs | 15 |
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(¤t_exe_path); |