diff options
| author | Laurențiu Nicola <lnicola@dend.ro> | 2021-10-02 10:07:50 +0300 |
|---|---|---|
| committer | Laurențiu Nicola <lnicola@dend.ro> | 2021-10-02 10:07:50 +0300 |
| commit | 502fa1755a50dd340c888500aebc2cb1a8dbc6bd (patch) | |
| tree | 888cca485b75bd0163e3ed96766f9052766329ad | |
| parent | 2c7b50217ee864a5a529af38aae8ccf14ab60888 (diff) | |
| download | rust-502fa1755a50dd340c888500aebc2cb1a8dbc6bd.tar.gz rust-502fa1755a50dd340c888500aebc2cb1a8dbc6bd.zip | |
Remove temporary file on exception
| -rw-r--r-- | editors/code/src/main.ts | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/editors/code/src/main.ts b/editors/code/src/main.ts index 72eca0fcc21..f69b7fdf566 100644 --- a/editors/code/src/main.ts +++ b/editors/code/src/main.ts @@ -287,20 +287,23 @@ async function patchelf(dest: vscode.Uri): Promise<void> { `; 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); + } } ); } |
