package org.arquillian.cube.docker.impl.docker.compose; import org.arquillian.cube.impl.util.IOUtil; import java.io.InputStream; import java.util.Map; public class DockerComposeEnvironmentVarResolver { private DockerComposeEnvironmentVarResolver() { super(); } /** * Method that takes an inputstream, read it preserving the end lines, and subtitute using commons-lang-3 calls * the variables, first searching as system properties vars and then in environment var list. * In case of missing the property is replaced by white space. * @param stream * @return */ public static String replaceParameters(final InputStream stream) { String content = IOUtil.asStringPreservingNewLines(stream); return resolvePlaceholders(content); } private static String resolvePlaceholders(String content) { content = resolveSystemProperties(content); final Map<String, String> env = System.getenv(); return IOUtil.replacePlaceholdersWithWhiteSpace(content, env); } private static String resolveSystemProperties(String content) { return IOUtil.replacePlaceholdersWithWhiteSpace(content); } }