mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-02 14:51:48 +00:00
Remove temporary file on exception
This commit is contained in:
parent
2c7b50217e
commit
502fa1755a
1 changed files with 17 additions and 14 deletions
|
@ -287,20 +287,23 @@ async function patchelf(dest: vscode.Uri): Promise<void> {
|
||||||
`;
|
`;
|
||||||
const origFile = vscode.Uri.file(dest.fsPath + "-orig");
|
const origFile = vscode.Uri.file(dest.fsPath + "-orig");
|
||||||
await vscode.workspace.fs.rename(dest, origFile, { overwrite: true });
|
await vscode.workspace.fs.rename(dest, origFile, { overwrite: true });
|
||||||
progress.report({ message: "Patching executable", increment: 20 });
|
try {
|
||||||
await new Promise((resolve, reject) => {
|
progress.report({ message: "Patching executable", increment: 20 });
|
||||||
const handle = exec(`nix-build -E - --argstr srcStr '${origFile.fsPath}' -o '${dest.fsPath}'`,
|
await new Promise((resolve, reject) => {
|
||||||
(err, stdout, stderr) => {
|
const handle = exec(`nix-build -E - --argstr srcStr '${origFile.fsPath}' -o '${dest.fsPath}'`,
|
||||||
if (err != null) {
|
(err, stdout, stderr) => {
|
||||||
reject(Error(stderr));
|
if (err != null) {
|
||||||
} else {
|
reject(Error(stderr));
|
||||||
resolve(stdout);
|
} else {
|
||||||
}
|
resolve(stdout);
|
||||||
});
|
}
|
||||||
handle.stdin?.write(expression);
|
});
|
||||||
handle.stdin?.end();
|
handle.stdin?.write(expression);
|
||||||
});
|
handle.stdin?.end();
|
||||||
await vscode.workspace.fs.delete(origFile);
|
});
|
||||||
|
} finally {
|
||||||
|
await vscode.workspace.fs.delete(origFile);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue