You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.2 KiB
53 lines
1.2 KiB
'use strict'; |
|
var utils = require('../utils'); |
|
var add = require('./add'); |
|
var parse = require('./parse'); |
|
|
|
// exported |
|
var rules = { ignore: [], watch: [] }; |
|
|
|
/** |
|
* Loads a nodemon config file and populates the ignore |
|
* and watch rules with it's contents, and calls callback |
|
* with the new rules |
|
* |
|
* @param {String} filename |
|
* @param {Function} callback |
|
*/ |
|
function load(filename, callback) { |
|
parse(filename, function (err, result) { |
|
if (err) { |
|
// we should have bombed already, but |
|
utils.log.error(err); |
|
callback(err); |
|
} |
|
|
|
if (result.raw) { |
|
result.raw.forEach(add.bind(null, rules, 'ignore')); |
|
} else { |
|
result.ignore.forEach(add.bind(null, rules, 'ignore')); |
|
result.watch.forEach(add.bind(null, rules, 'watch')); |
|
} |
|
|
|
callback(null, rules); |
|
}); |
|
} |
|
|
|
module.exports = { |
|
reset: function () { // just used for testing |
|
rules.ignore.length = rules.watch.length = 0; |
|
delete rules.ignore.re; |
|
delete rules.watch.re; |
|
}, |
|
load: load, |
|
ignore: { |
|
test: add.bind(null, rules, 'ignore'), |
|
add: add.bind(null, rules, 'ignore'), |
|
}, |
|
watch: { |
|
test: add.bind(null, rules, 'watch'), |
|
add: add.bind(null, rules, 'watch'), |
|
}, |
|
add: add.bind(null, rules), |
|
rules: rules, |
|
}; |