diff --git a/pom.xml b/pom.xml index ed5a1ac..ea05cdf 100644 --- a/pom.xml +++ b/pom.xml @@ -85,7 +85,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.3 + 1.6.7 true ossrh @@ -130,7 +130,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.3 + 1.6.7 true ossrh diff --git a/src/main/java/com/browserstack/local/Local.java b/src/main/java/com/browserstack/local/Local.java index 001c83a..b46210f 100644 --- a/src/main/java/com/browserstack/local/Local.java +++ b/src/main/java/com/browserstack/local/Local.java @@ -23,22 +23,24 @@ public class Local { private LocalProcess proc = null; private final Map parameters; + private final Map avoidValueParameters; public Local() { + avoidValueParameters = new HashMap(); + avoidValueParameters.put("v", "-vvv"); + avoidValueParameters.put("force", "-force"); + avoidValueParameters.put("forcelocal", "-forcelocal"); + avoidValueParameters.put("onlyAutomate", "-onlyAutomate"); + avoidValueParameters.put("forceproxy", "-forceproxy"); + parameters = new HashMap(); - parameters.put("v", "-vvv"); parameters.put("f", "-f"); - parameters.put("force", "-force"); parameters.put("only", "-only"); - parameters.put("forcelocal", "-forcelocal"); parameters.put("localIdentifier", "-localIdentifier"); - parameters.put("onlyAutomate", "-onlyAutomate"); parameters.put("proxyHost", "-proxyHost"); parameters.put("proxyPort", "-proxyPort"); parameters.put("proxyUser", "-proxyUser"); parameters.put("proxyPass", "-proxyPass"); - parameters.put("forceproxy", "-forceproxy"); - parameters.put("hosts", "-hosts"); } /** @@ -75,7 +77,7 @@ public void start(Map options) throws Exception { JSONObject obj = new JSONObject(!stdout.equals("") ? stdout : stderr); if(!obj.getString("state").equals("connected")){ - throw new LocalException(obj.getString("message")); + throw new LocalException(obj.getJSONObject("message").getString("message")); } else { pid = obj.getInt("pid"); @@ -124,13 +126,17 @@ private void makeCommand(Map options, String opCode) { if (IGNORE_KEYS.contains(parameter)) { continue; } - if (parameters.get(parameter) != null) { - command.add(parameters.get(parameter)); + if (avoidValueParameters.get(parameter) != null && opt.getValue().trim().toLowerCase() != "false") { + command.add(avoidValueParameters.get(parameter)); } else { - command.add("-" + parameter); - } - if (opt.getValue() != null) { - command.add(opt.getValue().trim()); + if (parameters.get(parameter) != null) { + command.add(parameters.get(parameter)); + } else { + command.add("-" + parameter); + } + if (opt.getValue() != null) { + command.add(opt.getValue().trim()); + } } } }