From 3b4a9b319c6db21f836dad0b722ce8b00f0a19f0 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@keylocation.sg>
Date: Fri, 13 Jan 2017 13:30:13 +0100
Subject: [PATCH] Enhance config structure for package files (#37)

* Better nest packageFiles

* fix lint
---
 app/config/parser.js | 17 ++++++++++++-----
 app/index.js         |  2 +-
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/app/config/parser.js b/app/config/parser.js
index 5461f24db6..b71b996f5b 100644
--- a/app/config/parser.js
+++ b/app/config/parser.js
@@ -27,12 +27,11 @@ module.exports = function init() {
   }
   // Check if repository name and package file are provided via CLI
   const repoName = process.argv[2];
-  const packageFile = process.argv[3] || 'package.json';
   if (repoName) {
     cliConfig.repositories = [
       {
-        name: repoName,
-        packageFiles: [packageFile],
+        repository: repoName,
+        packageFiles: [process.argv[3] || 'package.json'],
       },
     ];
   }
@@ -40,7 +39,7 @@ module.exports = function init() {
   // First, convert any strings to objects
   config.repositories.forEach((repo, index) => {
     if (typeof repo === 'string') {
-      config.repositories[index] = { name: repo };
+      config.repositories[index] = { repository: repo };
     }
   });
   // Add 'package.json' if missing
@@ -49,7 +48,15 @@ module.exports = function init() {
       config.repositories[index].packageFiles = ['package.json'];
     }
   });
-
+  // Expand format
+  config.repositories.forEach((repo, index) => {
+    config.repositories[index].packageFiles = repo.packageFiles.map((packageFile) => {
+      if (typeof packageFile === 'string') {
+        return { fileName: packageFile };
+      }
+      return packageFile;
+    });
+  });
 
   // Winston log level can be controlled via config or env
   if (config.logLevel) {
diff --git a/app/index.js b/app/index.js
index 1035aa1379..4bc52d921a 100644
--- a/app/index.js
+++ b/app/index.js
@@ -13,7 +13,7 @@ let p = Promise.resolve();
 // Queue up each repo/package combination
 config.repositories.forEach((repo) => {
   repo.packageFiles.forEach((packageFile) => {
-    p = p.then(() => renovate(repo.name, packageFile));
+    p = p.then(() => renovate(repo.repository, packageFile.fileName));
   });
 });
 p.then(() => { // eslint-disable-line promise/always-return
-- 
GitLab