aboutsummaryrefslogtreecommitdiff
path: root/agent/src/main/java/moe/yuuta/dn42peering/agent/provision/CommandChange.java
diff options
context:
space:
mode:
Diffstat (limited to 'agent/src/main/java/moe/yuuta/dn42peering/agent/provision/CommandChange.java')
-rw-r--r--agent/src/main/java/moe/yuuta/dn42peering/agent/provision/CommandChange.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/agent/src/main/java/moe/yuuta/dn42peering/agent/provision/CommandChange.java b/agent/src/main/java/moe/yuuta/dn42peering/agent/provision/CommandChange.java
new file mode 100644
index 0000000..ee60ee4
--- /dev/null
+++ b/agent/src/main/java/moe/yuuta/dn42peering/agent/provision/CommandChange.java
@@ -0,0 +1,27 @@
+package moe.yuuta.dn42peering.agent.provision;
+
+import io.vertx.core.Future;
+import io.vertx.core.Vertx;
+import io.vertx.core.impl.logging.Logger;
+import io.vertx.core.impl.logging.LoggerFactory;
+
+import javax.annotation.Nonnull;
+import java.util.Arrays;
+
+public class CommandChange extends Change {
+ private final Logger logger = LoggerFactory.getLogger(getClass().getSimpleName());
+ @Nonnull
+ private final String[] commands;
+
+ public CommandChange(@Nonnull String[] commands) {
+ super(Arrays.toString(commands), null, "exec");
+ this.commands = commands;
+ }
+
+ @Nonnull
+ @Override
+ public Future<Void> execute(@Nonnull Vertx vertx) {
+ logger.info("Executing " + Arrays.toString(commands));
+ return AsyncShell.execSucc(vertx, commands);
+ }
+}