changeset 854:3a418ac5ada1

Ability to run any hg command
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Tue, 08 Jul 2014 10:05:08 +0200
parents 820d02ac9b8a
children dbb5464363d9
files mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/HgRepo.java mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/FreeStyleCommand.java
diffstat 2 files changed, 51 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/HgRepo.java	Thu Jul 03 22:12:06 2014 +0200
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/HgRepo.java	Tue Jul 08 10:05:08 2014 +0200
@@ -173,6 +173,11 @@
     return new PurgeCommand(myCommandSettingsFactory.create(), myHgPath, myWorkingDir);
   }
 
+  @NotNull
+  public CommandResult runCommand(@NotNull String command, @NotNull String... args) throws VcsException {
+    return new FreeStyleCommand(myCommandSettingsFactory.create(), myHgPath, myWorkingDir, command, args).call();
+  }
+
   public String getHgPath() {
     return myHgPath;
   }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/FreeStyleCommand.java	Tue Jul 08 10:05:08 2014 +0200
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2000-2014 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package jetbrains.buildServer.buildTriggers.vcs.mercurial.command;
+
+import jetbrains.buildServer.vcs.VcsException;
+import org.jetbrains.annotations.NotNull;
+
+import java.io.File;
+
+public class FreeStyleCommand extends BaseCommand {
+
+  private final String myCommand;
+  private final String[] myArgs;
+
+  public FreeStyleCommand(@NotNull CommandSettings commandSettings,
+                          @NotNull String hgPath,
+                          @NotNull File workingDir,
+                          @NotNull String command,
+                          @NotNull String... args) {
+    super(commandSettings, hgPath, workingDir);
+    myCommand = command;
+    myArgs = args;
+  }
+
+
+  public CommandResult call() throws VcsException {
+    MercurialCommandLine cmd = createCommandLine();
+    cmd.addParameter(myCommand);
+    cmd.addParameters(myArgs);
+    return runCommand(cmd);
+  }
+}