Skip to content

Commit

Permalink
Merge pull request #14 from johnny-b-goode/master
Browse files Browse the repository at this point in the history
  • Loading branch information
edmund-wagner committed Jun 17, 2015
2 parents f9f8fad + 6aa9f16 commit d1a2168
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 5 deletions.
4 changes: 2 additions & 2 deletions src/main/java/org/jvnet/hudson/plugins/SSHBuildWrapper.java
Expand Up @@ -74,7 +74,7 @@ private boolean executePreBuildScript(AbstractBuild<?, ?> build, BuildListener l
vars.putAll(build.getEnvironment(listener));
vars.putAll(build.getBuildVariables());
String runtime_cmd = VariableReplacerUtil.replace(preScript, vars);
log(logger, "executing pre build script:\n" + runtime_cmd);
log(logger, "executing pre build script:\n" + VariableReplacerUtil.scrub(runtime_cmd, vars, build.getSensitiveBuildVariables()));
if (runtime_cmd != null && !runtime_cmd.trim().equals("")) {
return site.executeCommand(logger, runtime_cmd) == 0;
}
Expand All @@ -92,7 +92,7 @@ private boolean executePostBuildScript(AbstractBuild<?, ?> build, BuildListener
vars.putAll(build.getEnvironment(listener));
vars.putAll(build.getBuildVariables());
String runtime_cmd = VariableReplacerUtil.replace(postScript, vars);
log(logger, "executing post build script:\n" + runtime_cmd);
log(logger, "executing post build script:\n" + VariableReplacerUtil.scrub(runtime_cmd, vars, build.getSensitiveBuildVariables()));
if (runtime_cmd != null && !runtime_cmd.trim().equals("")) {
return site.executeCommand(logger, runtime_cmd) == 0;
}
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/org/jvnet/hudson/plugins/SSHBuilder.java
Expand Up @@ -75,15 +75,16 @@ public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListen
vars.putAll(build.getEnvironment(listener));
vars.putAll(build.getBuildVariables());
String runtime_cmd = VariableReplacerUtil.replace(command, vars);
String scrubbed_cmd = VariableReplacerUtil.scrub(runtime_cmd, vars, build.getSensitiveBuildVariables());

if (runtime_cmd != null && runtime_cmd.trim().length() > 0) {
if (execEachLine) {
listener.getLogger().printf("[SSH] commands:%n%s%n", runtime_cmd);
listener.getLogger().printf("[SSH] commands:%n%s%n", scrubbed_cmd);
}
else {
listener.getLogger().printf("[SSH] script:%n%s%n", runtime_cmd);
listener.getLogger().printf("[SSH] script:%n%s%n", scrubbed_cmd);
}
listener.getLogger().printf("%n[SSH] executing...%n", runtime_cmd);
listener.getLogger().printf("%n[SSH] executing...%n");
return site.executeCommand(listener.getLogger(), runtime_cmd, execEachLine) == 0;
}
return true;
Expand Down
23 changes: 23 additions & 0 deletions src/main/java/org/jvnet/hudson/plugins/VariableReplacerUtil.java
@@ -1,6 +1,7 @@
package org.jvnet.hudson.plugins;

import java.util.Map;
import java.util.Set;

public class VariableReplacerUtil {
public static String replace(String originalCommand, Map<String, String> vars) {
Expand All @@ -18,4 +19,26 @@ public static String replace(String originalCommand, Map<String, String> vars) {
sb.append(originalCommand);
return sb.toString();
}

public static String scrub(String command, Map<String, String> vars, Set<String> eyesOnlyVars) {
if(command == null || vars == null || eyesOnlyVars == null){
return command;
}
vars.remove("_");
for (String sensitive : eyesOnlyVars) {
for (String variable : vars.keySet()) {
if (variable.equals(sensitive)) {
String value = vars.get(variable);
if (command.contains(value)) {
if (command.contains("\"" + value + "\"")) {
command = command.replace(("\"" + value + "\"") , "**********");
}
command = command.replace(value , "**********");
}
break;
}
}
}
return command;
}
}

0 comments on commit d1a2168

Please sign in to comment.