UNPKG

gherkin-lint

Version:

A Gherkin linter/validator written in javascript

47 lines (36 loc) 1.3 kB
"use strict"; const fs = require('fs'); const stripJsonComments = require('strip-json-comments'); const verifyConfig = require('./config-verifier.js'); const logger = require('./logger.js'); const defaultConfigFileName = '.gherkin-lintrc'; function getConfiguration(configPath, additionalRulesDirs) { if (configPath) { if (!fs.existsSync(configPath)) { logger.boldError('Could not find specified config file "' + configPath + '"'); return process.exit(1); } } else { if (!fs.existsSync(defaultConfigFileName)) { logger.boldError('Could not find default config file "' + defaultConfigFileName + '" in the working ' + 'directory.\nTo use a custom name/path provide the config file using the "-c" arg.'); return process.exit(1); } configPath = defaultConfigFileName; } const config = JSON.parse(stripJsonComments(fs.readFileSync(configPath, { encoding: 'UTF-8' }))); const errors = verifyConfig(config, additionalRulesDirs); if (errors.length > 0) { logger.boldError('Error(s) in configuration file:'); errors.forEach(error => { logger.error(`- ${error}`); }); process.exit(1); } return config; } module.exports = { getConfiguration: getConfiguration, defaultConfigFileName: defaultConfigFileName };