diff options
Diffstat (limited to 'lib/compilers/nim.js')
-rw-r--r-- | lib/compilers/nim.js | 27 |
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*/) { |