UNPKG

grunt-phpmd

Version:

Grunt plugin for running PHP Mess Detector.

60 lines (49 loc) 1.77 kB
### grunt-phpmd Copyright (c) 2013 Andreas Lappe http://kaeufli.ch Licensed under the BSD license. ### path = require 'path' exec = (require 'child_process').exec exports.init = (grunt) -> exports = config = {} cmd = done = null defaults = bin: 'phpmd' # Can be xml, text or html reportFormat: 'xml' # Path and filename, otherwise STDOUT is used reportFile: false suffixes: false exclude: false minimumPriority: false strict: false rulesets: 'codesize,unusedcode,naming' maxBuffer: 200*1024 ignoreErrorCode: false ignoreWarningCode: true buildCommand = (dir) -> cmd = "#{path.normalize config.bin} #{dir} #{config.reportFormat} #{config.rulesets}" cmd += " --minimumpriority #{config.minimumPriority}" if config.minimumPriority cmd += " --reportfile #{config.reportFile}" if config.reportFile cmd += " --suffixes #{config.suffixes}" if config.suffixes cmd += " --exclude #{config.exclude}" if config.exclude cmd += " --strict" if config.strict cmd exports.setup = (runner) -> dir = path.normalize runner.data.dir config = runner.options defaults cmd = buildCommand dir grunt.log.writeln "Starting phpmd (target: #{runner.target.cyan}) in #{dir.cyan}" grunt.verbose.writeln "Execute: #{cmd}" done = runner.async() exports.run = -> cmdOptions = maxBuffer: config.maxBuffer exec cmd, cmdOptions, (err, stdout, stderr) -> grunt.log.write stdout if stdout # As documented on # http://phpmd.org/documentation/index.html#exit-codes grunt.fatal stdout if err and err.code is 1 and config.ignoreErrorCode is false grunt.warn stdout if err and err.code is 2 and config.ignoreWarningCode is false done() exports