diff options
author | 滑威 <rottenpen@outlook.com> | 2023-03-26 17:19:12 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-26 12:19:12 +0300 |
commit | 0742ea1170239b7d010e219b3349b2f9edaaefe5 (patch) | |
tree | af1e87db6bf61914fdb12184c3d8a84295dcd2ef | |
parent | 4d09b0c2940105def67f2d09f7984d5a60ca7396 (diff) |
fix(cli): deno upgrade file permission (#18427)
-rw-r--r-- | cli/tools/upgrade.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/cli/tools/upgrade.rs b/cli/tools/upgrade.rs index 933dad095..0748b4e8b 100644 --- a/cli/tools/upgrade.rs +++ b/cli/tools/upgrade.rs @@ -265,13 +265,15 @@ pub async fn upgrade( ) -> Result<(), AnyError> { let ps = ProcState::build(flags).await?; let current_exe_path = std::env::current_exe()?; - let metadata = fs::metadata(¤t_exe_path)?; + let output_exe_path = + upgrade_flags.output.as_ref().unwrap_or(¤t_exe_path); + let metadata = fs::metadata(output_exe_path)?; let permissions = metadata.permissions(); if permissions.readonly() { bail!( "You do not have write permission to {}", - current_exe_path.display() + output_exe_path.display() ); } #[cfg(unix)] @@ -282,7 +284,7 @@ pub async fn upgrade( "You don't have write permission to {} because it's owned by root.\n", "Consider updating deno through your package manager if its installed from it.\n", "Otherwise run `deno upgrade` as root.", - ), current_exe_path.display()); + ), output_exe_path.display()); } let client = &ps.http_client; |