sails-generate-eslintrc
Version:
generate eslint config file which contains sails's globals
97 lines (85 loc) • 3.15 kB
JavaScript
/**
* Module dependencies.
*/
var generate = require('./lib/generate');
var configure = require('./lib/configure');
var _ = require('underscore');
var program = require('commander');
var findFile = require('fs-finder');
function list(val) {
return val.split(',');
}
program
.version('1.3.2')
.option('-m, --mode <string>',
'Set mode for .eslintrc-sails: append, override.' +
'Default: Add default globals')
.option('-g, --globals <items>',
'Input globals list, like: sails, mysql', list)
.option('-f, --folders <items>',
'Input global folders list, like: api/controllers, config', list)
.option('-c, --config <path>', 'Set eslint config file name')
.option('-p, --preset <string>', 'Set preset coding style, like: google')
.option('-s, --show [value]', 'Show globals added')
.parse(process.argv);
// var _ = require('underscore');
var globals = {};
// var eslintrcSails = {};
var globalsList = ['sails'];
// var prefixPath = './';
var globalFoldersList = ['api/controllers', 'api/models', 'api/services'];
var eslintConfigFileName;
var sailsConfigFileName = '.eslintrc-sails';
var preset = null;
if (program.config) {
eslintConfigFileName = program.config;
} else {
eslintConfigFileName = findFile.in(process.cwd()).showSystemFiles().findFiles('.eslintrc<(.json|.js|)$>')
.sort((a, b) => a.length > b.length)[0];
}
if (!eslintConfigFileName) {
console.warn('Can\'t found the eslintrc file.');
process.exit();
} else {
console.info('Use ' + eslintConfigFileName + ' as eslintrc file.')
}
if (program.preset) {
preset = program.preset;
}
if (program.mode) {
switch (program.mode.trim()) {
case 'append':
case 'a':
globalsList = program.globals ? program.globals : [];
globalFoldersList = program.folders ? program.folders : [];
globals = generate.addGlobals(globalsList, globalFoldersList);
generate.appendConfigFile(globals, sailsConfigFileName);
break;
case 'override':
case 'o':
globalsList = program.globals ? program.globals : [];
globalFoldersList = program.folders ? program.folders : [];
globals = generate.addGlobals(globalsList, globalFoldersList);
generate.overrideConfigFile(globals, sailsConfigFileName);
break;
default:
globalsList = program.globals ?
_.uniq(globalsList.concat(program.globals)) : globalsList;
globalFoldersList = program.folders ?
_.uniq(globalFoldersList.concat(program.folders)) : globalFoldersList;
globals = generate.addGlobals(globalsList, globalFoldersList);
generate.appendConfigFile(globals, sailsConfigFileName);
}
} else {
globalsList = program.globals ?
_.uniq(globalsList.concat(program.globals)) : globalsList;
globalFoldersList = program.folders ?
_.uniq(globalFoldersList.concat(program.folders)) : globalFoldersList;
globals = generate.addGlobals(globalsList, globalFoldersList);
generate.appendConfigFile(globals, sailsConfigFileName);
}
if (program.show) {
console.log('Added globals: ' + globals);
}
configure.configureEslintrc(eslintConfigFileName, sailsConfigFileName, preset);