Remove temporary file on exception

This commit is contained in:
Laurențiu Nicola 2021-10-02 10:07:50 +03:00
parent 2c7b50217e
commit 502fa1755a

View file

@ -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);
}
} }
); );
} }