Command(String executable, System2 system) { Preconditions.checkArgument(!StringUtils.isBlank(executable), "Command executable can not be blank"); this.executable = executable; this.env = new HashMap<>(system.envVariables()); this.system = system; }
private boolean isEnvVariable(String propKey) { return propKey.startsWith(ENV_PROP_PREFIX) && system.envVariables().containsKey(propKey.substring(ENV_PROP_PREFIX.length())); }
private void writeEnvVariables(BufferedWriter fileWriter) throws IOException { fileWriter.append("Environment variables:\n"); Map<String, String> envVariables = system.envVariables(); new TreeSet<>(envVariables.keySet()) .forEach(envKey -> { try { String envValue = isSensitiveEnvVariable(envKey) ? "******" : envVariables.get(envKey); fileWriter.append(String.format(KEY_VALUE_FORMAT, envKey, envValue)).append('\n'); } catch (IOException e) { throw new IllegalStateException(e); } }); }
@Test public void override_env_variables() { System2 system = mock(System2.class); when(system.envVariables()).thenReturn(ImmutableMap.of("JAVA_HOME", "/default/path/to/java")); Command command = new Command("java", system); command.setEnvironmentVariable("JAVA_HOME", "/new/path/to/java"); assertThat(command.getEnvironmentVariables().get("JAVA_HOME")).isEqualTo("/new/path/to/java"); }
@Test public void testEnvVariables() { Map<String, String> expected = System.getenv(); assertThat(System2.INSTANCE.envVariables()).isNotNull().isEqualTo(expected); }
@Test public void shouldNotDumpEnvTwice() throws Exception { logTester.setLevel(LoggerLevel.DEBUG); ScannerReportWriter writer = new ScannerReportWriter(temp.newFolder()); Map<String, String> env = new HashMap<>(); env.put(FOO, "BAR"); env.put(BIZ, "BAZ"); when(system2.envVariables()).thenReturn(env); DefaultInputModule rootModule = new DefaultInputModule(ProjectDefinition.create() .setBaseDir(temp.newFolder()) .setWorkDir(temp.newFolder()) .setProperty("sonar.projectKey", "foo") .setProperty("env." + FOO, "BAR")); when(store.allModules()).thenReturn(singletonList(rootModule)); when(hierarchy.root()).thenReturn(rootModule); publisher.init(writer); String content = FileUtils.readFileToString(writer.getFileStructure().analysisLog(), StandardCharsets.UTF_8); assertThat(content).containsOnlyOnce(FOO); assertThat(content).containsOnlyOnce(BIZ); assertThat(content).containsSubsequence(BIZ, FOO); content = FileUtils.readFileToString(writer.getFileStructure().analysisLog(), StandardCharsets.UTF_8); assertThat(content).containsOnlyOnce(FOO); assertThat(content).containsOnlyOnce(BIZ); assertThat(content).doesNotContain("env." + FOO); }
Command(String executable, System2 system) { Preconditions.checkArgument(!StringUtils.isBlank(executable), "Command executable can not be blank"); this.executable = executable; this.env = Maps.newHashMap(system.envVariables()); this.system = system; }
private void writeEnvVariables(BufferedWriter fileWriter) throws IOException { fileWriter.append("Environment variables:\n"); Map<String, String> envVariables = system.envVariables(); for (String env : new TreeSet<>(envVariables.keySet())) { fileWriter.append(String.format(" - %s=%s", env, envVariables.get(env))).append('\n'); } }
private boolean isEnvVariable(String propKey) { return propKey.startsWith(ENV_PROP_PREFIX) && system.envVariables().containsKey(propKey.substring(ENV_PROP_PREFIX.length())); }
private boolean isEnvVariable(String propKey) { return propKey.startsWith(ENV_PROP_PREFIX) && system.envVariables().containsKey(propKey.substring(ENV_PROP_PREFIX.length())); }
private void writeEnvVariables(BufferedWriter fileWriter) throws IOException { fileWriter.append("Environment variables:\n"); Map<String, String> envVariables = system.envVariables(); new TreeSet<>(envVariables.keySet()) .forEach(envKey -> { try { String envValue = isSensitiveEnvVariable(envKey) ? "******" : envVariables.get(envKey); fileWriter.append(String.format(KEY_VALUE_FORMAT, envKey, envValue)).append('\n'); } catch (IOException e) { throw new IllegalStateException(e); } }); }
Command(String executable, System2 system) { Preconditions.checkArgument(!StringUtils.isBlank(executable), "Command executable can not be blank"); this.executable = executable; this.env = new HashMap<>(system.envVariables()); this.system = system; }