From 1e3d2449c872a206ef0715cefa32ad15f4219cbf Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@keylocation.sg>
Date: Mon, 5 Jun 2017 19:22:39 +0200
Subject: [PATCH] Restore tmp directory cleanup (#268)

Partial implementation of #252
---
 lib/helpers/npm.js  | 13 +++++++++++--
 lib/helpers/yarn.js | 13 +++++++++++--
 2 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/lib/helpers/npm.js b/lib/helpers/npm.js
index 1677d454e3..bf8c3ec285 100644
--- a/lib/helpers/npm.js
+++ b/lib/helpers/npm.js
@@ -27,10 +27,19 @@ async function generateLockFile(newPackageJson, npmrcContent) {
     logger.debug(String(result.stdout));
     logger.debug(String(result.stderr));
     packageLock = fs.readFileSync(path.join(tmpDir.name, 'package-lock.json'));
-  } catch (error) {
-    /* istanbul ignore next */
+  } catch (error) /* istanbul ignore next */ {
+    try {
+      tmpDir.removeCallback();
+    } catch (err2) {
+      logger.warn(`Failed to remove tmpDir ${tmpDir.name}`);
+    }
     throw error;
   }
+  try {
+    tmpDir.removeCallback();
+  } catch (err2) {
+    logger.warn(`Failed to remove tmpDir ${tmpDir.name}`);
+  }
   return packageLock;
 }
 
diff --git a/lib/helpers/yarn.js b/lib/helpers/yarn.js
index 016a6a2e1d..254ed8ce7d 100644
--- a/lib/helpers/yarn.js
+++ b/lib/helpers/yarn.js
@@ -40,10 +40,19 @@ async function generateLockFile(
     logger.debug(String(result.stdout));
     logger.debug(String(result.stderr));
     yarnLock = fs.readFileSync(path.join(tmpDir.name, 'yarn.lock'));
-  } catch (error) {
-    /* istanbul ignore next */
+  } catch (error) /* istanbul ignore next */ {
+    try {
+      tmpDir.removeCallback();
+    } catch (err2) {
+      logger.warn(`Failed to remove tmpDir ${tmpDir.name}`);
+    }
     throw error;
   }
+  try {
+    tmpDir.removeCallback();
+  } catch (err2) {
+    logger.warn(`Failed to remove tmpDir ${tmpDir.name}`);
+  }
   return yarnLock;
 }
 
-- 
GitLab