diff --git a/src/main/java/com/pablissimo/sonar/TsLintExecutorConfig.java b/src/main/java/com/pablissimo/sonar/TsLintExecutorConfig.java index e5cde94..5745d19 100644 --- a/src/main/java/com/pablissimo/sonar/TsLintExecutorConfig.java +++ b/src/main/java/com/pablissimo/sonar/TsLintExecutorConfig.java @@ -1,5 +1,7 @@ package com.pablissimo.sonar; +import java.io.File; + import org.sonar.api.batch.sensor.SensorContext; import org.sonar.api.config.Settings; @@ -15,10 +17,12 @@ public class TsLintExecutorConfig { private String pathToTsLintOutput; private Integer timeoutMs; + private File baseDir; public static TsLintExecutorConfig fromSettings(Settings settings, SensorContext ctx, PathResolver resolver) { TsLintExecutorConfig toReturn = new TsLintExecutorConfig(); + toReturn.setBasedir(ctx.fileSystem().baseDir()); toReturn.setPathToTsLint(resolver.getPath(ctx, TypeScriptPlugin.SETTING_TS_LINT_PATH, TSLINT_FALLBACK_PATH)); toReturn.setConfigFile(resolver.getPath(ctx, TypeScriptPlugin.SETTING_TS_LINT_CONFIG_PATH, CONFIG_FILENAME)); toReturn.setRulesDir(resolver.getPath(ctx, TypeScriptPlugin.SETTING_TS_LINT_RULES_DIR, null)); @@ -31,6 +35,14 @@ public static TsLintExecutorConfig fromSettings(Settings settings, SensorContext return toReturn; } + public File getBasedir() { + return this.baseDir; + } + + private void setBasedir(File baseDir) { + this.baseDir = baseDir; + } + public Boolean useExistingTsLintOutput() { return this.pathToTsLintOutput != null && !this.pathToTsLintOutput.isEmpty(); } @@ -95,4 +107,5 @@ public boolean shouldPerformTypeCheck() { public void setShouldPerformTypeCheck(boolean performTypeCheck) { this.shouldPerformTypeCheck = performTypeCheck; } + } diff --git a/src/main/java/com/pablissimo/sonar/TsLintExecutorImpl.java b/src/main/java/com/pablissimo/sonar/TsLintExecutorImpl.java index 3deab10..0a37060 100644 --- a/src/main/java/com/pablissimo/sonar/TsLintExecutorImpl.java +++ b/src/main/java/com/pablissimo/sonar/TsLintExecutorImpl.java @@ -47,7 +47,8 @@ private Command getBaseCommand(TsLintExecutorConfig config, String tempPath) { .create("node") .addArgument(this.preparePath(config.getPathToTsLint())) .addArgument("--format") - .addArgument("json"); + .addArgument("json") + .setDirectory(config.getBasedir()); String rulesDir = config.getRulesDir(); if (rulesDir != null && rulesDir.length() > 0) {