From 8b096c98ea98bd0bf154fa416837e45d5416694d Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@keylocation.sg>
Date: Sat, 14 Jan 2017 15:18:19 +0100
Subject: [PATCH] Expand env support

---
 app/config/env.js   | 33 +++++++++++++++++++++++++++++++++
 app/config/index.js |  2 +-
 2 files changed, 34 insertions(+), 1 deletion(-)

diff --git a/app/config/env.js b/app/config/env.js
index 0fff85fda3..dd5c554af0 100644
--- a/app/config/env.js
+++ b/app/config/env.js
@@ -1,10 +1,39 @@
 const logger = require('winston');
+const program = require('commander');
 
 const config = {};
 
+if (process.env.RENOVATE_REPOSITORIES) {
+  config.repositories = list(process.env.RENOVATE_REPOSITORIES);
+}
+if (process.env.RENOVATE_DEP_TYPES) {
+  config.depTypes = list(process.env.RENOVATE_DEP_TYPES);
+}
+if (process.env.RENOVATE_FORCE) {
+  config.force = process.env.RENOVATE_FORCE;
+}
+if (process.env.RENOVATE_IGNORE_DEPS) {
+  config.ignoreDeps = list(process.env.RENOVATE_IGNORE_DEPS);
+}
+if (process.env.RENOVATE_LABELS) {
+  config.labels = list(process.env.RENOVATE_LABELS);
+}
 if (process.env.LOG_LEVEL) {
   config.logLevel = process.env.LOG_LEVEL;
 }
+if (process.env.RENOVATE_PACKAGE_FILES) {
+  if (config.repositories) {
+    // We can't use package files if we don't have repositories
+    config.repositories = config.repositories.map(repository => ({
+      repository,
+      packageFiles: list(process.env.RENOVATE_PACKAGE_FILES),
+    }));
+  } else {
+    logger.error('Defining package files via env requires at least one repository too');
+    program.outputHelp();
+    process.exit(1);
+  }
+}
 if (process.env.RENOVATE_TOKEN) {
   config.token = process.env.RENOVATE_TOKEN;
 }
@@ -12,3 +41,7 @@ if (process.env.RENOVATE_TOKEN) {
 logger.debug(`Env config: ${JSON.stringify(config)}`);
 
 module.exports = config;
+
+function list(val) {
+  return val.split(',');
+}
diff --git a/app/config/index.js b/app/config/index.js
index 0b6dc0b532..e5c6c33610 100644
--- a/app/config/index.js
+++ b/app/config/index.js
@@ -6,8 +6,8 @@ logger.debug('Generating config');
 // Get configs
 const defaultConfig = require('./default');
 const fileConfig = require('./file');
-const envConfig = require('./env');
 const cliConfig = require('./cli');
+const envConfig = require('./env');
 
 // Get global config
 const config = Object.assign({}, defaultConfig, fileConfig, envConfig, cliConfig);
-- 
GitLab