Page MenuHomePhabricator

D7539.diff
No OneTemporary

D7539.diff

Index: src/applications/harbormaster/step/RemoteCommandBuildStepImplementation.php
===================================================================
--- src/applications/harbormaster/step/RemoteCommandBuildStepImplementation.php
+++ src/applications/harbormaster/step/RemoteCommandBuildStepImplementation.php
@@ -26,20 +26,38 @@
$settings = $this->getSettings();
+ $parameters = array();
+ $matches = array();
+ $variables = $this->retrieveVariablesFromBuild($build);
+ $command = $settings['command'];
+ preg_match_all(
+ "/\\\$\\{(?P<name>[a-z]+)\\}/",
+ $command,
+ $matches);
+ foreach ($matches["name"] as $match) {
+ $parameters[] = idx($variables, $match, "");
+ }
+ $command = str_replace("%", "%%", $command);
+ $command = preg_replace("/\\\$\\{(?P<name>[a-z]+)\\}/", "%s", $command);
+
+ $command = vcsprintf(
+ $command,
+ $parameters);
+
$future = null;
if (empty($settings['sshkey'])) {
$future = new ExecFuture(
'ssh -o "StrictHostKeyChecking no" -p %s %s %s',
$settings['sshport'],
$settings['sshuser'].'@'.$settings['sshhost'],
- $this->mergeVariables($build, $settings['command']));
+ $command);
} else {
$future = new ExecFuture(
'ssh -o "StrictHostKeyChecking no" -p %s -i %s %s %s',
$settings['sshport'],
$settings['sshkey'],
$settings['sshuser'].'@'.$settings['sshhost'],
- $this->mergeVariables($build, $settings['command']));
+ $command);
}
$log_stdout = $build->createLog($build_step, "remote", "stdout");

File Metadata

Mime Type
text/plain
Expires
Thu, Nov 7, 3:42 AM (6 d, 2 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6727814
Default Alt Text
D7539.diff (1 KB)

Event Timeline