UNPKG

uxp-linter-test-app

Version:

UXP LINTER is useful for linting your code with ESLint rules and guidelines.

76 lines (61 loc) 2.74 kB
#!/usr/bin/env node "use strict"; require("v8-compile-cache"); var readline = require("readline"), fs = require('fs'), path = require('path'), constants = require('./bin/constants'), utils = require('./bin/utils'), // sonarConfig = require('./bin/sonar-config'), uxpLinterConfig = require('./bin/uxp-linter-config'), htmlConfig = require('./bin/html-linter-config'), cssConfig = require('./bin/css-linter-config'), ScriptData = require('./bin/script-data'); const { htmlConfigFileName } = constants; async function initializeConfig() { let scripts = []; let uxpLinterInitCmd = `uxp-linter --init`; let sd = new ScriptData('uxp-linter-init', uxpLinterInitCmd); scripts.push(sd); if (!fs.existsSync(path.join(__dirname, './../../package.json'))) { await utils.initializePackageJson(); } else { await utils.addScriptPackageJSON(scripts, path.join(__dirname, './../../package.json')); } if (!fs.existsSync(path.join(__dirname, './../../.uxplinterrc.json'))) { await utils.initializeLinterConfig(); // require('./bin/index'); } else { let configData = utils.readLinterConfig(); installRequestedLinter(configData); } } async function installRequestedLinter(configData) { if (configData['js-linter']) { console.log('\x1b[32m%s\x1b[0m', '\nStart: UXP JS Linter installation.'); await uxpLinterConfig.installUxpLinter() await utils.updateLinterConfig({'js-linter': true}); console.log("JS installation complete") } if (configData['html-linter']) { console.log('\x1b[32m%s\x1b[0m', '\nStart: UXP HTML Linter installation.'); const eslintConfigFilePath = path.join(__dirname, `./bin/${htmlConfigFileName}`); await htmlConfig.installHtmlLinter(eslintConfigFilePath, htmlConfigFileName) await utils.updateLinterConfig({'html-linter': true}); console.log("HTML installation complete") } if (configData['css-linter']) { console.log('\x1b[32m%s\x1b[0m', '\nStart: UXP CSS Linter installation.'); const cssConfigFileName = './.stylelintrc.json'; const eslintConfigFilePath = path.join(__dirname, './bin/.stylelintrc.json'); await cssConfig.installCssLinter(eslintConfigFilePath, cssConfigFileName); await utils.updateLinterConfig({'css-linter': true}); console.log("CSS installation complete") } // if (configData['sonar-properties-initialized']) { // if (!fs.existsSync(path.join(__dirname, `./../../sonar-project.properties`))) // await sonarConfig.initializeSonarProperties(); // } process.exit(); } module.exports = initializeConfig();