public void rm(boolean removeVolumes) throws DockerComposeException { ensureComposeFileAssigned(); final Concat cmd = new Concat("docker-compose") .whenIsNotNull(project).append(new StringBuilder(" -p ").append(project)) .append(" -f ").append(composeFile) .append(" rm -f") .when(removeVolumes).append(" -v"); run(cmd.toString()); }
/** * Helper for naming the thread by taking the simple name of the given class (i.e. {@link Class#getSimpleName()}) * and concatenating hyphen-delimited {@code nameFrags}.<p> * * Example 1: {@code withName(Reaper.class)} results in {@code Reaper}.<br> * Example 2: {@code withName(Reaper.class, "collector", 0)} results in {@code Reaper-collector-0}.<br> * * @param cls The class name. * @param nameFrags The name fragments. * @return This {@link WorkerOptions} instance for fluent chaining. */ public WorkerOptions withName(Class<?> cls, Object... nameFrags) { final String name = new Concat() .append(cls.getSimpleName()) .when(nameFrags.length > 0).append(new Concat().append("-").appendArray("-", nameFrags)) .toString(); return withName(name); }
public Concat appendArray(String separator, Object... objs) { return conditional(c -> c.appendArray(separator, objs)); }
public ConditionalConcat when(boolean condition) { return new ConditionalConcat(condition); }
public Concat append(Object obj) { return conditional(c -> c.append(obj)); }
private String parseCommand(String[] command) { return new Concat() .when(path != null).append(new Concat("export PATH=$PATH:") .append(path) .append(" && ")) .appendArray(" ", (Object[]) command) .toString(); }
public void stop(int timeout) throws DockerComposeException { ensureComposeFileAssigned(); final Concat cmd = new Concat("docker-compose") .whenIsNotNull(project).append(new StringBuilder(" -p ").append(project)) .append(" -f ").append(composeFile) .append(" stop") .when(timeout != 0).append(new StringBuilder(" -t ").append(timeout)); run(cmd.toString()); }
public Concat appendArray(String separator, Object... objs) { for (int i = 0; i < objs.length; i++) { append(objs[i]).when(i < objs.length - 1).append(separator); } return this; }
public void down(boolean removeVolumes) throws DockerComposeException { ensureComposeFileAssigned(); final Concat cmd = new Concat("docker-compose") .whenIsNotNull(project).append(new StringBuilder(" -p ").append(project)) .append(" -f ").append(composeFile) .append(" down") .when(removeVolumes).append(" -v"); run(cmd.toString()); }
public void up() throws DockerComposeException { ensureComposeFileAssigned(); final Concat cmd = new Concat("docker-compose") .whenIsNotNull(project).append(new StringBuilder(" -p ").append(project)) .append(" -f ").append(composeFile) .append(" up --no-color -d"); run(cmd.toString()); }