diff --git a/bin/addons-validator b/bin/addons-validator index 23656d7dbbc..2d93b102de6 100755 --- a/bin/addons-validator +++ b/bin/addons-validator @@ -1,4 +1,9 @@ #!/usr/bin/env node +var path = require('path'); + var AddonValidator = require('../dist/addons-validator').createInstance(); AddonValidator.scan(); + +var absoluteAppRoot = path.resolve(__dirname); +global.relativeAppPath = path.relative(process.cwd(), absoluteAppRoot); diff --git a/package.json b/package.json index 73368c0d98c..8684f9b07cf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "addons-validator", - "version": "0.0.4", + "version": "0.0.5", "description": "Mozilla addons validator", "main": "dist/addons-validator.js", "bin": { diff --git a/src/scanners/javascript.js b/src/scanners/javascript.js index 1c43282148c..fd0d0995ba5 100644 --- a/src/scanners/javascript.js +++ b/src/scanners/javascript.js @@ -1,3 +1,5 @@ +import path from 'path'; + import ESLint from 'eslint'; import { ESLINT_TYPES } from 'const'; @@ -15,11 +17,15 @@ export default class JavaScriptScanner { scan(_ESLint=ESLint) { return new Promise((resolve) => { + + var rulesPath = global.relativeAppPath ? + path.join(global.relativeAppPath, '../dist/eslint') : 'dist/eslint'; + // ESLint is synchronous and doesn't accept streams, so we need to // pass it the entire source file as a string. let eslint = new _ESLint.CLIEngine({ ignore: false, - rulePaths: ['dist/eslint'], + rulePaths: [rulesPath], rules: ESLintRules, useEslintrc: false, envs: ['es6'],