aboutsummaryrefslogtreecommitdiff
path: root/lib/compilers/nim.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/compilers/nim.js')
-rw-r--r--lib/compilers/nim.js27
1 files changed, 13 insertions, 14 deletions
diff --git a/lib/compilers/nim.js b/lib/compilers/nim.js
index b9de53645..de920d9d7 100644
--- a/lib/compilers/nim.js
+++ b/lib/compilers/nim.js
@@ -91,22 +91,21 @@ class NimCompiler extends BaseCompiler {
return path.join(cacheDir, resultName);
}
- postProcess(result, outputFilename, filters) {
- let options = result.compilationOptions;
- let setup = Promise.resolve("");
+ async postProcess(result, outputFilename, filters) {
+ const options = result.compilationOptions;
const cacheDir = this.cacheDir(outputFilename);
- const cleanup = () => fs.remove(cacheDir);
-
- if (_.intersection(options, ["js", "check"]).length)
- filters.binary = false;
- else {
- filters.binary = true;
- const objFile = this.getCacheFile(options, result.inputFilename, cacheDir);
- setup = fs.move(objFile, outputFilename);
+ try {
+ if (_.intersection(options, ["js", "check"]).length)
+ filters.binary = false;
+ else {
+ filters.binary = true;
+ const objFile = this.getCacheFile(options, result.inputFilename, cacheDir);
+ await fs.move(objFile, outputFilename);
+ }
+ return super.postProcess(result, outputFilename, filters);
+ } finally {
+ await fs.remove(cacheDir);
}
-
- const postProcess = () => super.postProcess(result, outputFilename, filters);
- return setup.then(postProcess).finally(cleanup);
}
getSharedLibraryPathsAsArguments(/*libraries*/) {