53 lines
1.2 KiB
JavaScript
53 lines
1.2 KiB
JavaScript
|
'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,
|
||
|
};
|