diff options
Diffstat (limited to 'sonar-css-plugin/src/main')
| -rw-r--r-- | sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssPlugin.java | 12 | ||||
| -rw-r--r-- | sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java | 17 |
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; } } |
