aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-css-plugin/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-css-plugin/src/main')
-rw-r--r--sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssPlugin.java12
-rw-r--r--sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java17
2 files changed, 27 insertions, 2 deletions
diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssPlugin.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssPlugin.java
index c35836f..cd98f25 100644
--- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssPlugin.java
+++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssPlugin.java
@@ -33,6 +33,9 @@ public class CssPlugin implements Plugin {
public static final String STYLELINT_REPORT_PATHS = "sonar.css.stylelint.reportPaths";
public static final String STYLELINT_REPORT_PATHS_DEFAULT_VALUE = "";
+ public static final String NODE_EXECUTABLE = "sonar.css.node";
+ public static final String NODE_EXECUTABLE_DEFAULT = "node";
+
private static final String CSS_CATEGORY = "CSS";
private static final String LINTER_SUBCATEGORY = "Popular Rule Engines";
private static final String GENERAL_SUBCATEGORY = "General";
@@ -59,6 +62,15 @@ public class CssPlugin implements Plugin {
.category(CSS_CATEGORY)
.onQualifiers(Qualifiers.PROJECT)
.multiValues(true)
+ .build(),
+
+ PropertyDefinition.builder(NODE_EXECUTABLE)
+ .defaultValue(NODE_EXECUTABLE_DEFAULT)
+ .name("Node.js executable")
+ .description("Node.js executable used to run the analysis of CSS files.")
+ .subCategory(GENERAL_SUBCATEGORY)
+ .category(CSS_CATEGORY)
+ .hidden()
.build()
);
diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java
index b2f50b5..52fa93f 100644
--- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java
+++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java
@@ -21,15 +21,19 @@ package org.sonar.css.plugin;
import java.io.File;
import java.nio.file.Paths;
+import java.util.Optional;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.batch.sensor.SensorContext;
import org.sonar.api.config.Configuration;
+import org.sonar.api.utils.log.Logger;
+import org.sonar.api.utils.log.Loggers;
@ScannerSide
public class StylelintCommandProvider implements LinterCommandProvider {
+ private static final Logger LOG = Loggers.get(StylelintCommandProvider.class);
+
private static final String CONFIG_PATH = "css-bundle/stylelintconfig.json";
- private static final String NODE_EXECUTABLE = "node";
@Override
public String[] commandParts(File deployDestination, SensorContext context) {
@@ -55,6 +59,15 @@ public class StylelintCommandProvider implements LinterCommandProvider {
@Override
public String nodeExecutable(Configuration configuration) {
- return NODE_EXECUTABLE;
+ Optional<String> nodeExecutableOptional = configuration.get(CssPlugin.NODE_EXECUTABLE);
+ if (nodeExecutableOptional.isPresent()) {
+ String nodeExecutable = nodeExecutableOptional.get();
+ File file = new File(nodeExecutable);
+ if (file.exists()) {
+ return nodeExecutable;
+ }
+ LOG.warn("Provided node executable file does not exist: " + file);
+ }
+ return CssPlugin.NODE_EXECUTABLE_DEFAULT;
}
}