Skip to content

Instantly share code, notes, and snippets.

@nojimage
Created November 17, 2015 07:27
Show Gist options
  • Save nojimage/550b02b6396de828e0f9 to your computer and use it in GitHub Desktop.
Save nojimage/550b02b6396de828e0f9 to your computer and use it in GitHub Desktop.
for NetBeans phpcsmd plugin
diff --git a/src/de/foopara/phpcsmd/exec/pdepend/Pdepend.java b/src/de/foopara/phpcsmd/exec/pdepend/Pdepend.java
index ebb3d7b..339cf96 100644
--- a/src/de/foopara/phpcsmd/exec/pdepend/Pdepend.java
+++ b/src/de/foopara/phpcsmd/exec/pdepend/Pdepend.java
@@ -13,6 +13,8 @@ import de.foopara.phpcsmd.generics.GenericOutputReader;
import de.foopara.phpcsmd.generics.GenericProcess;
import de.foopara.phpcsmd.option.PdependOptions;
import de.foopara.phpcsmd.ui.reports.PdependReportTopComponent;
+import java.util.ArrayList;
+import java.util.List;
public class Pdepend
{
@@ -41,7 +43,8 @@ public class Pdepend
HashSet<File> tmpFiles = new HashSet<File>();
- StringBuilder cmd = new StringBuilder(GenericExecute.escapePath((String)PdependOptions.load(PdependOptions.Settings.SCRIPT, lkp)));
+ List<String> cmd = new ArrayList<String>();
+ cmd.add(GenericExecute.escapePath((String)PdependOptions.load(PdependOptions.Settings.SCRIPT, lkp)));
this.appendArgument(cmd, "--suffix=", "" + (String)PdependOptions.load(PdependOptions.Settings.SUFFIXES, lkp));
this.appendArgument(cmd, "--exclude=", "" + (String)PdependOptions.load(PdependOptions.Settings.EXCLUDE, lkp));
this.appendArgument(cmd, "--ignore=", "" + (String)PdependOptions.load(PdependOptions.Settings.IGNORES, lkp));
@@ -58,7 +61,7 @@ public class Pdepend
this.appendArgument(cmd, "--jdepend-xml=", jdepend.getAbsolutePath());
tmpFiles.add(jdepend);
}
- cmd.append(" ").append(GenericHelper.escapePath(file));
+ cmd.add(GenericHelper.escapePath(file));
Logger.getInstance().logPre(cmd.toString(), "pdepend command");
PdependParser parser = new PdependParser();
@@ -68,7 +71,7 @@ public class Pdepend
for (int i = 0; i < tmpFilesArray.length; i++) {
outputFiles[i] = (File)tmpFilesArray[i];
}
- GenericOutputReader[] reader = GenericProcess.run(cmd.toString(), outputFiles, this.component, lkp);
+ GenericOutputReader[] reader = GenericProcess.run(cmd, outputFiles, this.component, lkp);
if (reader.length < 1) {
Logger.getInstance().logPre("no output from commmand line", "pdepend command");
return this.setAndReturnDefault();
@@ -95,9 +98,10 @@ public class Pdepend
return new PdependResult();
}
- private void appendArgument(StringBuilder b, String key, String value) {
+ protected void appendArgument(List<String> cmd, String key, String value) {
if (value.trim().length() > 0) {
- b.append(" ").append(key).append(value);
+ StringBuilder b = new StringBuilder(key);
+ cmd.add(b.append(value).toString());
}
}
diff --git a/src/de/foopara/phpcsmd/exec/phpcpd/Phpcpd.java b/src/de/foopara/phpcsmd/exec/phpcpd/Phpcpd.java
index 54ca219..e7919dd 100644
--- a/src/de/foopara/phpcsmd/exec/phpcpd/Phpcpd.java
+++ b/src/de/foopara/phpcsmd/exec/phpcpd/Phpcpd.java
@@ -17,6 +17,8 @@ import de.foopara.phpcsmd.generics.GenericOutputReader;
import de.foopara.phpcsmd.generics.GenericProcess;
import de.foopara.phpcsmd.generics.GenericResult;
import de.foopara.phpcsmd.option.PhpcpdOptions;
+import java.util.ArrayList;
+import java.util.List;
/**
*
@@ -63,14 +65,14 @@ public class Phpcpd extends GenericExecute
}
- StringBuilder cmd = this.getGenericCommand(lookup);
- cmd.append(" ").append(GenericHelper.getPhpcpdDistractor());
- cmd.append(" ").append(GenericHelper.escapePath(file));
+ List<String> cmd = this.getGenericCommand(lookup);
+ cmd.add(GenericHelper.getPhpcpdDistractor());
+ cmd.add(GenericHelper.escapePath(file));
boolean updateDependencies = false;
for (FileObject fo : ViolationRegistry.getInstance().getPhpcpdDependency(file)) {
updateDependencies = true;
- cmd.append(" ").append(fo.getPath());
+ cmd.add(fo.getPath());
}
Logger.getInstance().logPre(cmd.toString(), "php-cpd command");
@@ -78,7 +80,7 @@ public class Phpcpd extends GenericExecute
if (!iAmAlive()) {
return this.setAndReturnCurrent(file);
}
- GenericOutputReader[] reader = GenericProcess.run(cmd.toString(), "", null, lookup);
+ GenericOutputReader[] reader = GenericProcess.run(cmd, "", null, lookup);
if (reader.length < 1) {
Logger.getInstance().logPre("no output from commmand line", "phpcpd command");
return this.setAndReturnCurrent(file);
@@ -130,16 +132,16 @@ public class Phpcpd extends GenericExecute
return new HashMap<String, PhpcpdResult>();
}
- StringBuilder cmd = this.getGenericCommand(lookup);
- cmd.append(" ").append(GenericHelper.getPhpcpdDistractor());
- cmd.append(" ").append(GenericHelper.escapePath(folder));
+ List<String> cmd = this.getGenericCommand(lookup);
+ cmd.add(GenericHelper.getPhpcpdDistractor());
+ cmd.add(GenericHelper.escapePath(folder));
Logger.getInstance().logPre(cmd.toString(), "php-cpd command (folder scan)");
PhpcpdFolderParser parser = new PhpcpdFolderParser();
if (!iAmAlive()) {
return new HashMap<String, PhpcpdResult>();
}
- GenericOutputReader[] reader = GenericProcess.run(cmd.toString(), "", null, lookup);
+ GenericOutputReader[] reader = GenericProcess.run(cmd, "", null, lookup);
if (!iAmAlive()) {
return new HashMap<String, PhpcpdResult>();
}
@@ -178,8 +180,9 @@ public class Phpcpd extends GenericExecute
return res;
}
- private StringBuilder getGenericCommand(Lookup lookup) {
- StringBuilder cmd = new StringBuilder(GenericExecute.escapePath((String)PhpcpdOptions.load(PhpcpdOptions.Settings.SCRIPT, lookup)));
+ private List<String> getGenericCommand(Lookup lookup) {
+ List<String> cmd = new ArrayList<String>();
+ cmd.add(GenericExecute.escapePath((String)PhpcpdOptions.load(PhpcpdOptions.Settings.SCRIPT, lookup)));
this.appendArgument(cmd, "--min-lines ", "" + (Integer)PhpcpdOptions.load(PhpcpdOptions.Settings.MINLINES, lookup));
this.appendArgument(cmd, "--min-tokens ", "" + (Integer)PhpcpdOptions.load(PhpcpdOptions.Settings.MINTOKENS, lookup));
this.appendArgument(cmd, "--suffixes ", (String)PhpcpdOptions.load(PhpcpdOptions.Settings.SUFFIXES, lookup));
diff --git a/src/de/foopara/phpcsmd/exec/phpcs/Phpcs.java b/src/de/foopara/phpcsmd/exec/phpcs/Phpcs.java
index 98b4e82..3d1f894 100644
--- a/src/de/foopara/phpcsmd/exec/phpcs/Phpcs.java
+++ b/src/de/foopara/phpcsmd/exec/phpcs/Phpcs.java
@@ -17,6 +17,8 @@ import de.foopara.phpcsmd.generics.GenericOutputReader;
import de.foopara.phpcsmd.generics.GenericProcess;
import de.foopara.phpcsmd.generics.GenericResult;
import de.foopara.phpcsmd.option.PhpcsOptions;
+import java.util.ArrayList;
+import java.util.List;
/**
*
@@ -53,7 +55,8 @@ public class Phpcs extends GenericExecute
}
CustomStandard cstandard = null;
- StringBuilder cmd = new StringBuilder(GenericExecute.escapePath((String)PhpcsOptions.load(PhpcsOptions.Settings.SCRIPT, lookup)));
+ List<String> cmd = new ArrayList<String>();
+ cmd.add(GenericExecute.escapePath((String)PhpcsOptions.load(PhpcsOptions.Settings.SCRIPT, lookup)));
if ((Boolean)PhpcsOptions.load(PhpcsOptions.Settings.EXTRAS, lookup) == true
|| ((String)PhpcsOptions.load(PhpcsOptions.Settings.STANDARD, lookup)).trim().length() == 0) {
cstandard = new CustomStandard(lookup);
@@ -67,18 +70,18 @@ public class Phpcs extends GenericExecute
this.appendArgument(cmd, "-d ", GenericHelper.implode(" -d ", ((String)PhpcsOptions.load(PhpcsOptions.Settings.INIOVERWRITE, lookup)).split(";")));
if ((Integer)PhpcsOptions.load(PhpcsOptions.Settings.TABWIDTH, lookup) > -1) {
- cmd.append(" --tab-width=").append((Integer)PhpcsOptions.load(PhpcsOptions.Settings.TABWIDTH, lookup));
+ this.appendArgument(cmd, "--tab-width=", (String)PhpcsOptions.load(PhpcsOptions.Settings.TABWIDTH, lookup));
}
if ((Boolean)PhpcsOptions.load(PhpcsOptions.Settings.WARNINGS, lookup) == true) {
- cmd.append(" -w");
+ cmd.add("-w");
} else {
- cmd.append(" -n");
+ cmd.add("-n");
}
- cmd.append(" --report=xml");
+ cmd.add("--report=xml");
- cmd.append(" ").append(GenericHelper.escapePath(file));
+ cmd.add(GenericHelper.escapePath(file));
Logger.getInstance().logPre(cmd.toString(), "phpcs command");
/*
@@ -92,7 +95,7 @@ public class Phpcs extends GenericExecute
if (!iAmAlive()) {
return this.setAndReturnCurrent(file);
}
- GenericOutputReader[] reader = GenericProcess.run(cmd.toString(), "", null, lookup);
+ GenericOutputReader[] reader = GenericProcess.run(cmd, "", null, lookup);
if (reader.length < 1) {
Logger.getInstance().logPre("no output from commmand line", "phpcs command");
return this.setAndReturnCurrent(file);
@@ -128,12 +131,6 @@ public class Phpcs extends GenericExecute
return res;
}
- private void appendArgument(StringBuilder b, String key, String value) {
- if (value.trim().length() > 0) {
- b.append(" ").append(key).append(value);
- }
- }
-
private GenericResult setAndReturnDefault(FileObject file) {
GenericResult ret = new GenericResult(null, null, null);
ViolationRegistry.getInstance().setPhpcs(file, ret);
diff --git a/src/de/foopara/phpcsmd/exec/phpmd/Phpmd.java b/src/de/foopara/phpcsmd/exec/phpmd/Phpmd.java
index 17fe148..a5bd4c1 100644
--- a/src/de/foopara/phpcsmd/exec/phpmd/Phpmd.java
+++ b/src/de/foopara/phpcsmd/exec/phpmd/Phpmd.java
@@ -16,6 +16,8 @@ import de.foopara.phpcsmd.generics.GenericOutputReader;
import de.foopara.phpcsmd.generics.GenericProcess;
import de.foopara.phpcsmd.generics.GenericResult;
import de.foopara.phpcsmd.option.PhpmdOptions;
+import java.util.ArrayList;
+import java.util.List;
/**
*
@@ -51,16 +53,17 @@ public class Phpmd extends GenericExecute
return this.setAndReturnCurrent(file);
}
- StringBuilder cmd = new StringBuilder(GenericExecute.escapePath((String)PhpmdOptions.load(PhpmdOptions.Settings.SCRIPT, lookup)));
- cmd.append(" ").append(GenericHelper.escapePath(file));
- cmd.append(" ").append("xml");
- cmd.append(" ").append((String)PhpmdOptions.load(PhpmdOptions.Settings.RULES, lookup));
+ List<String> cmd = new ArrayList<String>();
+ cmd.add(GenericExecute.escapePath((String)PhpmdOptions.load(PhpmdOptions.Settings.SCRIPT, lookup)));
+ cmd.add(GenericHelper.escapePath(file));
+ cmd.add("xml");
+ cmd.add((String)PhpmdOptions.load(PhpmdOptions.Settings.RULES, lookup));
this.appendArgument(cmd, "--suffixes", (String)PhpmdOptions.load(PhpmdOptions.Settings.SUFFIXES, lookup));
this.appendArgument(cmd, "--exclude", (String)PhpmdOptions.load(PhpmdOptions.Settings.EXCLUDE, lookup));
this.appendArgument(cmd, "--minimumpriority", (String)PhpmdOptions.load(PhpmdOptions.Settings.MINPRIORITY, lookup));
if ((Boolean)PhpmdOptions.load(PhpmdOptions.Settings.STRICT, lookup) == true) {
- cmd.append(" --strict");
+ cmd.add(" --strict");
}
Logger.getInstance().logPre(cmd.toString(), "pmd command");
@@ -68,7 +71,7 @@ public class Phpmd extends GenericExecute
if (!iAmAlive()) {
return this.setAndReturnCurrent(file);
}
- GenericOutputReader[] reader = GenericProcess.run(cmd.toString(), "", null, lookup);
+ GenericOutputReader[] reader = GenericProcess.run(cmd, "", null, lookup);
if (reader.length < 1) {
Logger.getInstance().logPre("no output from commmand line", "phpmd command");
return this.setAndReturnCurrent(file);
@@ -100,12 +103,6 @@ public class Phpmd extends GenericExecute
return res;
}
- private void appendArgument(StringBuilder b, String key, String value) {
- if (value.trim().length() > 0) {
- b.append(" ").append(key).append(" ").append(value);
- }
- }
-
private GenericResult setAndReturnDefault(FileObject file) {
GenericResult ret = new GenericResult(null, null, null);
ViolationRegistry.getInstance().setPhpmd(file, ret);
diff --git a/src/de/foopara/phpcsmd/generics/GenericExecute.java b/src/de/foopara/phpcsmd/generics/GenericExecute.java
index 195c087..496320e 100644
--- a/src/de/foopara/phpcsmd/generics/GenericExecute.java
+++ b/src/de/foopara/phpcsmd/generics/GenericExecute.java
@@ -5,6 +5,7 @@ import org.openide.util.Lookup;
import de.foopara.phpcsmd.option.GeneralOptions;
import de.foopara.phpcsmd.threads.QAThread;
+import java.util.List;
/**
*
@@ -62,4 +63,11 @@ abstract public class GenericExecute
return executable.replace(" ", "\\ ");
}
+
+ protected void appendArgument(List<String> cmd, String key, String value) {
+ if (value.trim().length() > 0) {
+ StringBuilder b = new StringBuilder(key);
+ cmd.add(b.append(value).toString());
+ }
+ }
}
\ No newline at end of file
diff --git a/src/de/foopara/phpcsmd/generics/GenericHelper.java b/src/de/foopara/phpcsmd/generics/GenericHelper.java
index 682878e..e0ccb9a 100644
--- a/src/de/foopara/phpcsmd/generics/GenericHelper.java
+++ b/src/de/foopara/phpcsmd/generics/GenericHelper.java
@@ -198,7 +198,7 @@ public class GenericHelper
public static String escapePath(FileObject f) {
String escapedFilename = f.getPath();
if (escapedFilename.contains(" ")) {
- escapedFilename = escapedFilename.replaceAll(" ", "\\\\ ");
+// escapedFilename = escapedFilename.replaceAll(" ", "\\\\ ");
}
return escapedFilename;
}
diff --git a/src/de/foopara/phpcsmd/generics/GenericProcess.java b/src/de/foopara/phpcsmd/generics/GenericProcess.java
index 0c271e6..a83e1b1 100644
--- a/src/de/foopara/phpcsmd/generics/GenericProcess.java
+++ b/src/de/foopara/phpcsmd/generics/GenericProcess.java
@@ -15,6 +15,7 @@ import org.openide.util.Exceptions;
import org.openide.util.Lookup;
import de.foopara.phpcsmd.debug.Logger;
+import java.util.List;
/**
*
@@ -48,7 +49,7 @@ public class GenericProcess
return output;
}
- public static GenericOutputReader[] run(String cmd, String outputFile, GenericTopComponent topComponent, Lookup lkp) {
+ public static GenericOutputReader[] run(List<String> cmd, String outputFile, GenericTopComponent topComponent, Lookup lkp) {
if (outputFile == null || outputFile.compareTo("") == 0) {
return GenericProcess.run(cmd, new File[]{}, topComponent, lkp);
}
@@ -56,14 +57,14 @@ public class GenericProcess
}
- public static GenericOutputReader[] run(String cmd, File[] outputFiles, GenericTopComponent topComponent, Lookup lkp) {
+ public static GenericOutputReader[] run(List<String> cmd, File[] outputFiles, GenericTopComponent topComponent, Lookup lkp) {
if (outputFiles.length == 0) {
outputFiles = null;
}
FileInputStream fis = null;
try {
- Process child = Runtime.getRuntime().exec(cmd);
+ Process child = Runtime.getRuntime().exec((String[])cmd.toArray(new String[0]));
StringBuilder tmp = new StringBuilder();
InputStream in = child.getInputStream();
int c;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment