mirror of
https://github.com/rust-lang/rust-analyzer
synced 2025-01-13 21:54:42 +00:00
Merge #3115
3115: vscode: remove chmod in favour of an option to createWriteStream() r=matklad a=Veetaha
Inspired by [cpptools code](0d91db0e06/Extension/src/packageManager.ts (L385-L386)
)
Co-authored-by: Veetaha <gerzoh1@gmail.com>
This commit is contained in:
commit
af5042bd61
2 changed files with 8 additions and 5 deletions
|
@ -3,7 +3,7 @@ import * as fs from "fs";
|
|||
import { strict as assert } from "assert";
|
||||
|
||||
/**
|
||||
* Downloads file from `url` and stores it at `destFilePath`.
|
||||
* Downloads file from `url` and stores it at `destFilePath` with `destFilePermissions`.
|
||||
* `onProgress` callback is called on recieveing each chunk of bytes
|
||||
* to track the progress of downloading, it gets the already read and total
|
||||
* amount of bytes to read as its parameters.
|
||||
|
@ -11,6 +11,7 @@ import { strict as assert } from "assert";
|
|||
export async function downloadFile(
|
||||
url: string,
|
||||
destFilePath: fs.PathLike,
|
||||
destFilePermissions: number,
|
||||
onProgress: (readBytes: number, totalBytes: number) => void
|
||||
): Promise<void> {
|
||||
const res = await fetch(url);
|
||||
|
@ -35,6 +36,9 @@ export async function downloadFile(
|
|||
onProgress(readBytes, totalBytes);
|
||||
})
|
||||
.on("error", reject)
|
||||
.pipe(fs.createWriteStream(destFilePath).on("close", resolve))
|
||||
.pipe(fs
|
||||
.createWriteStream(destFilePath, { mode: destFilePermissions })
|
||||
.on("close", resolve)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -35,7 +35,8 @@ export async function downloadLatestLanguageServer(
|
|||
},
|
||||
async (progress, _cancellationToken) => {
|
||||
let lastPrecentage = 0;
|
||||
await downloadFile(downloadUrl, installationPath, throttle(
|
||||
const filePermissions = 0o755; // (rwx, r_x, r_x)
|
||||
await downloadFile(downloadUrl, installationPath, filePermissions, throttle(
|
||||
200,
|
||||
/* noTrailing: */ true,
|
||||
(readBytes, totalBytes) => {
|
||||
|
@ -51,8 +52,6 @@ export async function downloadLatestLanguageServer(
|
|||
}
|
||||
);
|
||||
console.timeEnd("Downloading ra_lsp_server");
|
||||
|
||||
await fs.chmod(installationPath, 0o755); // Set (rwx, r_x, r_x) permissions
|
||||
}
|
||||
export async function ensureLanguageServerBinary(
|
||||
langServerSource: null | BinarySource
|
||||
|
|
Loading…
Reference in a new issue