all-contributors-cli/lib/util/configFile.js
2016-03-27 17:10:53 +02:00

34 lines
837 B
JavaScript

'use strict';
var fs = require('fs');
var _ = require('lodash/fp');
function formatCommaFirst(o) {
return JSON.stringify(o, null, 2)
.split(/(,\n\s+)/)
.map(function (e, i) {
return i % 2 ? '\n' + e.substring(4) + ', ' : e;
})
.join('') +
'\n';
}
function readConfig(configPath) {
return JSON.parse(fs.readFileSync(configPath, 'utf-8'));
}
function writeConfig(configPath, content, cb) {
return fs.writeFile(configPath, formatCommaFirst(content), cb);
}
function writeContributors(configPath, contributors, cb) {
var config = readConfig(configPath);
var content = _.assign(config, {contributors: contributors});
return fs.writeFile(configPath, formatCommaFirst(content), cb);
}
module.exports = {
readConfig: readConfig,
writeConfig: writeConfig,
writeContributors: writeContributors
};