aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-css-plugin/src/main/java
diff options
context:
space:
mode:
authorElena Vilchik2018-06-21 11:13:19 +0200
committerAmaury Levé2018-06-21 11:13:19 +0200
commit6472431ad488158bfcf863a7b4a5655e1ecc55e8 (patch)
tree34181ef96511a8eb6b09dead1f14e819e19b769a /sonar-css-plugin/src/main/java
parentc6053785e5f8f01a544cb106afd9109a6ba7d7a1 (diff)
downloadsonar-css-6472431ad488158bfcf863a7b4a5655e1ecc55e8.tar.bz2
Generate rules configuration file (#56)
Diffstat (limited to 'sonar-css-plugin/src/main/java')
-rw-r--r--sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssPlugin.java2
-rw-r--r--sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRuleSensor.java13
-rw-r--r--sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRules.java2
-rw-r--r--sonar-css-plugin/src/main/java/org/sonar/css/plugin/LinterCommandProvider.java1
-rw-r--r--sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java (renamed from sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintExecution.java)11
-rw-r--r--sonar-css-plugin/src/main/java/org/sonar/css/plugin/bundle/BundleHandler.java (renamed from sonar-css-plugin/src/main/java/org/sonar/css/plugin/BundleHandler.java)2
-rw-r--r--sonar-css-plugin/src/main/java/org/sonar/css/plugin/bundle/CssBundleHandler.java1
7 files changed, 26 insertions, 6 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 2835edb..b4f78f7 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
@@ -41,7 +41,7 @@ public class CssPlugin implements Plugin {
CssRulesDefinition.class,
CssBundleHandler.class,
CssRuleSensor.class,
- StylelintExecution.class,
+ StylelintCommandProvider.class,
PropertyDefinition.builder(FILE_SUFFIXES_KEY)
.defaultValue(FILE_SUFFIXES_DEFVALUE)
diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRuleSensor.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRuleSensor.java
index 8b6558b..eda2b5d 100644
--- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRuleSensor.java
+++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRuleSensor.java
@@ -24,6 +24,9 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.Collections;
import org.sonar.api.batch.fs.FileSystem;
import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.rule.CheckFactory;
@@ -32,6 +35,8 @@ import org.sonar.api.batch.sensor.SensorContext;
import org.sonar.api.batch.sensor.SensorDescriptor;
import org.sonar.api.batch.sensor.issue.NewIssue;
import org.sonar.api.batch.sensor.issue.NewIssueLocation;
+import org.sonar.css.plugin.CssRules.StylelintConfig;
+import org.sonar.css.plugin.bundle.BundleHandler;
public class CssRuleSensor implements Sensor {
@@ -64,6 +69,7 @@ public class CssRuleSensor implements Sensor {
ProcessBuilder processBuilder = new ProcessBuilder(commandParts);
try {
+ createConfig(deployDestination);
Process process = processBuilder.start();
try (InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream(), StandardCharsets.UTF_8)) {
@@ -77,6 +83,13 @@ public class CssRuleSensor implements Sensor {
}
}
+ private void createConfig(File deployDestination) throws IOException {
+ String configPath = linterCommandProvider.configPath(deployDestination);
+ StylelintConfig config = cssRules.getConfig();
+ String configAsJson = new Gson().toJson(config);
+ Files.write(Paths.get(configPath), Collections.singletonList(configAsJson), StandardCharsets.UTF_8);
+ }
+
private static void saveIssues(SensorContext context, CssRules cssRules, IssuesPerFile[] issues) {
FileSystem fileSystem = context.fileSystem();
diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRules.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRules.java
index 4ece37e..4fdf3f5 100644
--- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRules.java
+++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRules.java
@@ -28,8 +28,8 @@ import java.util.Map;
import org.sonar.api.batch.rule.CheckFactory;
import org.sonar.api.batch.rule.Checks;
import org.sonar.api.rule.RuleKey;
-import org.sonar.css.plugin.rules.CssRule;
import org.sonar.css.plugin.rules.ColorNoInvalidHex;
+import org.sonar.css.plugin.rules.CssRule;
public class CssRules {
diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/LinterCommandProvider.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/LinterCommandProvider.java
index 6f06c84..142762c 100644
--- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/LinterCommandProvider.java
+++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/LinterCommandProvider.java
@@ -25,4 +25,5 @@ public interface LinterCommandProvider {
String[] commandParts(File deployDestination, File projectBaseDir);
+ String configPath(File deployDestination);
}
diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintExecution.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java
index c88a0ac..fe05ad6 100644
--- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintExecution.java
+++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java
@@ -23,7 +23,9 @@ import java.io.File;
import org.sonar.api.batch.ScannerSide;
@ScannerSide
-public class StylelintExecution implements LinterCommandProvider {
+public class StylelintCommandProvider implements LinterCommandProvider {
+
+ private static final String CONFIG_PATH = "css-bundle/stylelintconfig.json";
@Override
public String[] commandParts(File deployDestination, File projectBaseDir) {
@@ -31,8 +33,13 @@ public class StylelintExecution implements LinterCommandProvider {
"node",
new File(deployDestination, "css-bundle/node_modules/stylelint/bin/stylelint").getAbsolutePath(),
projectBaseDir.getAbsolutePath(),
- "--config", new File(deployDestination, "css-bundle/stylelintconfig.json").getAbsolutePath(),
+ "--config", new File(deployDestination, CONFIG_PATH).getAbsolutePath(),
"-f", "json"
};
}
+
+ @Override
+ public String configPath(File deployDestination) {
+ return new File(deployDestination, CONFIG_PATH).getAbsolutePath();
+ }
}
diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/BundleHandler.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/bundle/BundleHandler.java
index 79a7d5b..5b9fa35 100644
--- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/BundleHandler.java
+++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/bundle/BundleHandler.java
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonar.css.plugin;
+package org.sonar.css.plugin.bundle;
import java.io.File;
diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/bundle/CssBundleHandler.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/bundle/CssBundleHandler.java
index acf9245..3140094 100644
--- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/bundle/CssBundleHandler.java
+++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/bundle/CssBundleHandler.java
@@ -24,7 +24,6 @@ import java.io.InputStream;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers;
-import org.sonar.css.plugin.BundleHandler;
import org.sonar.css.plugin.Zip;
@ScannerSide