From 502fa1755a50dd340c888500aebc2cb1a8dbc6bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lauren=C8=9Biu=20Nicola?= Date: Sat, 2 Oct 2021 10:07:50 +0300 Subject: [PATCH] Remove temporary file on exception --- editors/code/src/main.ts | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/editors/code/src/main.ts b/editors/code/src/main.ts index 72eca0fcc214b..f69b7fdf566e9 100644 --- a/editors/code/src/main.ts +++ b/editors/code/src/main.ts @@ -287,20 +287,23 @@ async function patchelf(dest: vscode.Uri): Promise { `; const origFile = vscode.Uri.file(dest.fsPath + "-orig"); await vscode.workspace.fs.rename(dest, origFile, { overwrite: true }); - progress.report({ message: "Patching executable", increment: 20 }); - await new Promise((resolve, reject) => { - const handle = exec(`nix-build -E - --argstr srcStr '${origFile.fsPath}' -o '${dest.fsPath}'`, - (err, stdout, stderr) => { - if (err != null) { - reject(Error(stderr)); - } else { - resolve(stdout); - } - }); - handle.stdin?.write(expression); - handle.stdin?.end(); - }); - await vscode.workspace.fs.delete(origFile); + try { + progress.report({ message: "Patching executable", increment: 20 }); + await new Promise((resolve, reject) => { + const handle = exec(`nix-build -E - --argstr srcStr '${origFile.fsPath}' -o '${dest.fsPath}'`, + (err, stdout, stderr) => { + if (err != null) { + reject(Error(stderr)); + } else { + resolve(stdout); + } + }); + handle.stdin?.write(expression); + handle.stdin?.end(); + }); + } finally { + await vscode.workspace.fs.delete(origFile); + } } ); }