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:
parent
4d09b0c294
commit
0742ea1170
1 changed files with 5 additions and 3 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue