%PDF- %PDF-
Direktori : /home/vacivi36/ava/.grunt/tasks/ |
Current File : /home/vacivi36/ava/.grunt/tasks/ignorefiles.js |
// This file is part of Moodle - http://moodle.org/ // // Moodle is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /* jshint node: true, browser: false */ /* eslint-env node */ /** * @copyright 2021 Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ module.exports = grunt => { /** * Generate the PHPCS configuration. * * @param {Object} thirdPartyPaths */ const phpcsIgnore = (thirdPartyPaths) => { const {toXML} = require('jstoxml'); const config = { _name: 'ruleset', _attrs: { name: "MoodleCore", }, _content: [ { rule: { _attrs: { ref: './phpcs.xml.dist', }, }, }, ], }; thirdPartyPaths.forEach(library => { config._content.push({ 'exclude-pattern': library, }); }); grunt.file.write('phpcs.xml', toXML(config, { header: true, indent: ' ', }) + "\n"); }; /** * Generate ignore files (utilising thirdpartylibs.xml data) */ const handler = function() { const path = require('path'); const ComponentList = require(path.join(process.cwd(), '.grunt', 'components.js')); // An array of paths to third party directories. const thirdPartyPaths = ComponentList.getThirdPartyPaths(); // Generate .eslintignore. const eslintIgnores = [ '# Generated by "grunt ignorefiles"', // Do not ignore the .grunt directory. '!/.grunt', // Ignore all yui/src meta directories and build directories. '*/**/yui/src/*/meta/', '*/**/build/', ].concat(thirdPartyPaths); grunt.file.write('.eslintignore', eslintIgnores.join('\n') + '\n'); // Generate .stylelintignore. const stylelintIgnores = [ '# Generated by "grunt ignorefiles"', '**/yui/build/*', 'theme/boost/style/moodle.css', 'theme/classic/style/moodle.css', 'jsdoc/styles/*.css', 'admin/tool/componentlibrary/hugo/dist/css/docs.css', ].concat(thirdPartyPaths); grunt.file.write('.stylelintignore', stylelintIgnores.join('\n') + '\n'); phpcsIgnore(thirdPartyPaths); }; grunt.registerTask('ignorefiles', 'Generate ignore files for linters', handler); return handler; };