/* * Licensed to Elasticsearch B.V. under one or more contributor * license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright * ownership. Elasticsearch B.V. licenses this file to you under * the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ import fs from 'fs'; import path from 'path'; export default function checkPlugins(grunt) { grunt.registerTask('checkPlugins', 'Checks for plugins which may disrupt tests', function checkPlugins() { const done = this.async(); const pluginsDir = path.resolve('./plugins/'); fs.readdir(pluginsDir, (err, files) => { if (!files) { return done(); } const plugins = files.filter(file => { return fs.statSync(path.join(pluginsDir, file)).isDirectory(); }); if (plugins.length) { grunt.log.error('==================================================================================================='); plugins.forEach(plugin => { grunt.log.error(`The ${plugin} plugin may disrupt the test process. Consider removing it and re-running your tests.`); }); grunt.log.error('==================================================================================================='); } done(); }); }); }