package com.hubspot.singularity; import java.util.Arrays; import java.util.regex.Matcher; import java.util.regex.Pattern; import com.google.common.base.Optional; import com.google.common.base.Strings; import com.google.inject.AbstractModule; import com.hubspot.singularity.client.SingularityClientModule; public class DockerTestModule extends AbstractModule { private static final Pattern DOCKER_HOST_PATTERN = Pattern.compile("tcp://(.*?):(\\d+)"); public static Optional<String> getDockerAddress() { final String dockerHost = System.getenv("DOCKER_HOST"); if (Strings.isNullOrEmpty(dockerHost)) { return Optional.absent(); } final Matcher m = DOCKER_HOST_PATTERN.matcher(dockerHost); if (m.matches()) { return Optional.of(m.group(1)); } else { return Optional.absent(); } } @Override protected void configure() { final int singularityPort = Integer.parseInt(System.getProperty("singularity.port")); install(new SingularityClientModule(Arrays.asList(String.format("%s:%d", getDockerAddress().or("localhost"), singularityPort)))); } }