Skip to content

Commit 59c758d

Browse files
bors[bot]lnicola
andauthored
Merge #10422
10422: fix: overwrite files when calling `patchelf` r=lnicola a=lnicola Fixes #10379 bors r+ Co-authored-by: Laurențiu Nicola <[email protected]>
2 parents 237ea0d + 502fa17 commit 59c758d

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

editors/code/src/main.ts

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -286,21 +286,24 @@ async function patchelf(dest: vscode.Uri): Promise<void> {
286286
}
287287
`;
288288
const origFile = vscode.Uri.file(dest.fsPath + "-orig");
289-
await vscode.workspace.fs.rename(dest, origFile);
290-
progress.report({ message: "Patching executable", increment: 20 });
291-
await new Promise((resolve, reject) => {
292-
const handle = exec(`nix-build -E - --argstr srcStr '${origFile.fsPath}' -o '${dest.fsPath}'`,
293-
(err, stdout, stderr) => {
294-
if (err != null) {
295-
reject(Error(stderr));
296-
} else {
297-
resolve(stdout);
298-
}
299-
});
300-
handle.stdin?.write(expression);
301-
handle.stdin?.end();
302-
});
303-
await vscode.workspace.fs.delete(origFile);
289+
await vscode.workspace.fs.rename(dest, origFile, { overwrite: true });
290+
try {
291+
progress.report({ message: "Patching executable", increment: 20 });
292+
await new Promise((resolve, reject) => {
293+
const handle = exec(`nix-build -E - --argstr srcStr '${origFile.fsPath}' -o '${dest.fsPath}'`,
294+
(err, stdout, stderr) => {
295+
if (err != null) {
296+
reject(Error(stderr));
297+
} else {
298+
resolve(stdout);
299+
}
300+
});
301+
handle.stdin?.write(expression);
302+
handle.stdin?.end();
303+
});
304+
} finally {
305+
await vscode.workspace.fs.delete(origFile);
306+
}
304307
}
305308
);
306309
}

0 commit comments

Comments
 (0)