From 150dfa8a5d00c7d2ddee1632a21908f7339a4673 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Mon, 24 Sep 2018 13:13:41 +0200
Subject: [PATCH] refactor(composer): use cache dir

---
 lib/manager/composer/lock-file.js | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/lib/manager/composer/lock-file.js b/lib/manager/composer/lock-file.js
index 2946160ac8..bc9bc77f1f 100644
--- a/lib/manager/composer/lock-file.js
+++ b/lib/manager/composer/lock-file.js
@@ -1,6 +1,7 @@
 const { exec } = require('child-process-promise');
 const fs = require('fs-extra');
 const upath = require('upath');
+const os = require('os');
 
 const hostRules = require('../../util/host-rules');
 
@@ -15,6 +16,10 @@ async function getLockFile(
   config
 ) {
   logger.debug(`composer.getLockFile(${packageFileName})`);
+  process.env.COMPOSER_CACHE_DIR =
+    process.env.COMPOSER_CACHE_DIR ||
+    upath.join(os.tmpdir(), '/renovate/cache/composer');
+  await fs.ensureDir(process.env.COMPOSER_CACHE_DIR);
   const lockFileName = packageFileName.replace(/\.json$/, '.lock');
   const existingLockFileContent = await platform.getFile(lockFileName);
   if (!existingLockFileContent) {
@@ -50,7 +55,14 @@ async function getLockFile(
       const localAuthFileName = upath.join(cwd, 'auth.json');
       await fs.outputFile(localAuthFileName, JSON.stringify(authJson));
     }
-    const env = { HOME: process.env.HOME, PATH: process.env.PATH };
+    const env =
+      config.global && config.global.exposeEnv
+        ? process.env
+        : {
+            HOME: process.env.HOME,
+            PATH: process.env.PATH,
+            COMPOSER_CACHE_DIR: process.env.COMPOSER_CACHE_DIR,
+          };
     const startTime = process.hrtime();
     const cmd =
       ('composer update ' + updatedDeps.join(' ')).trim() +
-- 
GitLab