package org.keycloak.testsuite.cli; import org.keycloak.testsuite.cli.exec.AbstractExec; import org.keycloak.testsuite.cli.exec.AbstractExecBuilder; import java.io.InputStream; /** * @author <a href="mailto:mstrukel@redhat.com">Marko Strukelj</a> */ public class KcAdmExec extends AbstractExec { public static final String WORK_DIR = System.getProperty("user.dir") + "/target/containers/keycloak-client-tools"; public static final String CMD = OS_ARCH.isWindows() ? "kcadm.bat" : "kcadm.sh"; private KcAdmExec(String workDir, String argsLine, InputStream stdin) { this(workDir, argsLine, null, stdin); } private KcAdmExec(String workDir, String argsLine, String env, InputStream stdin) { super(workDir, argsLine, env, stdin); } @Override public String getCmd() { return "bin/" + CMD; } public static KcAdmExec.Builder newBuilder() { return (KcAdmExec.Builder) new KcAdmExec.Builder().workDir(WORK_DIR); } public static KcAdmExec execute(String args) { return newBuilder() .argsLine(args) .execute(); } public static class Builder extends AbstractExecBuilder<KcAdmExec> { @Override public KcAdmExec execute() { KcAdmExec exe = new KcAdmExec(workDir, argsLine, env, stdin); exe.dumpStreams = dumpStreams; exe.execute(); return exe; } @Override public KcAdmExec executeAsync() { KcAdmExec exe = new KcAdmExec(workDir, argsLine, env, stdin); exe.dumpStreams = dumpStreams; exe.executeAsync(); return exe; } } }