'use strict'
var merge = require('merge')
var yaml = require('js-yaml')
var logger = require('./logger')
var fs = require('fs')

function mergeConfigs(cfgs) {
	var conf = cfgs[0]
	for (var config in cfgs) {
		var tmp = merge.recursive(false, conf, cfgs[config]) 
		tmp.patterns = cfgs[config].patterns.concat(conf.patterns)
		conf = tmp
	}
	return conf
}

function loadConfigFiles(files) {
	var conf = {}
	var configs = files.map(function (file) {
		logger.debug('merge pattern file ' + file)
		var cfg = {}
		try {
			cfg = yaml.load(fs.readFileSync(file, 'utf8'))
		} catch (e) {
		  logger.error('ignoring pattern file ' + file + ' ' + e)	
	      if (e.reason && e.mark) {
	        logger.error('Error parsing file: ' + name + ' ' + e.reason + ' line:' + e.mark.line + ' column:' + e.mark.columns)
	      } else {
	        //console.log(error.stack)
	        logger.error('Error parsing file: ' + name + ' ' + e + ' ' + e.stack)
	      }
		} finally {
		  //console.log(config)
		  return cfg	
		}
	})
	return mergeConfigs(configs)
}

//console.log(loadConfigFiles(['./patterns.yml']))
//module.exports.mergeConfigs = mergeConfigs
module.exports = loadConfigFiles


@@ -143,16 +143,17 @@
 eConfigs
+ 
 (cfgs) %7B
@@ -149,25 +149,26 @@
 gs (cfgs) %7B%0A
-%09
+  
 var conf = c
@@ -174,17 +174,18 @@
 cfgs%5B0%5D%0A
-%09
+  
 for (var
@@ -203,18 +203,20 @@
 cfgs) %7B%0A
-%09%09
+    
 var tmp 
@@ -263,12 +263,13 @@
 ig%5D)
- %0A%09%09
+%0A    
 tmp.
@@ -323,18 +323,20 @@
 tterns)%0A
-%09%09
+    
 conf = t
@@ -338,20 +338,22 @@
 f = tmp%0A
-%09%7D%0A%09
+  %7D%0A  
 return c
@@ -383,16 +383,17 @@
 figFiles
+ 
 (files) 
@@ -398,24 +398,10 @@
 ) %7B%0A
-%09var conf = %7B%7D%0A%09
+  
 var 
@@ -438,18 +438,20 @@
 file) %7B%0A
-%09%09
+    
 logger.d
@@ -485,18 +485,20 @@
 + file)%0A
-%09%09
+    
 var cfg 
@@ -506,19 +506,24 @@
  %7B%7D%0A
-%09%09
+    
 try %7B%0A
-%09%09%09
+      
 cfg 
@@ -565,18 +565,20 @@
 utf8'))%0A
-%09%09
+    
 %7D catch 
@@ -583,18 +583,20 @@
 h (e) %7B%0A
-%09%09
+    
   logger
@@ -644,19 +644,17 @@
 ' ' + e)
-%09%0A%09
+%0A
       if
@@ -677,17 +677,16 @@
 mark) %7B%0A
-%09
         
@@ -715,35 +715,35 @@
 rsing file: ' + 
-nam
+fil
 e + ' ' + e.reas
@@ -801,17 +801,16 @@
 olumns)%0A
-%09
       %7D 
@@ -816,17 +816,16 @@
  else %7B%0A
-%09
         
@@ -822,24 +822,25 @@
 %7B%0A        //
+ 
 console.log(
@@ -848,25 +848,24 @@
 rror.stack)%0A
-%09
         logg
@@ -902,11 +902,11 @@
 ' + 
-nam
+fil
 e + 
@@ -934,17 +934,16 @@
 ck)%0A
-%09
       %7D%0A
 %09%09%7D 
@@ -938,18 +938,20 @@
       %7D%0A
-%09%09
+    
 %7D finall
@@ -958,14 +958,17 @@
 y %7B%0A
-%09%09
+    
   //
+ 
 cons
@@ -983,18 +983,20 @@
 config)%0A
-%09%09
+    
   return
@@ -1003,19 +1003,22 @@
  cfg
-%09%0A%09%09%7D%0A%09%7D)%0A%09
+%0A    %7D%0A  %7D)%0A  
 retu
@@ -1047,16 +1047,17 @@
 s)%0A%7D%0A%0A//
+ 
 console.
@@ -1099,16 +1099,17 @@
 l'%5D))%0A//
+ 
 module.e
@@ -1176,9 +1176,8 @@
 igFiles%0A
-%0A

rename mergeConfig.js to mergePatternFiles.js