1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-25 16:49:18 -05:00

fix(cli): deno upgrade file permission (#18427)

This commit is contained in:
滑威 2023-03-26 17:19:12 +08:00 committed by GitHub
parent 4d09b0c294
commit 0742ea1170
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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(&current_exe_path)?;
let output_exe_path =
upgrade_flags.output.as_ref().unwrap_or(&current_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;