rename UnixAutoConfigurator to PosixAutoConfigurator and make it match for linux systems

This commit is contained in:
Sebastian Sdorra
2020-07-02 07:02:51 +02:00
parent 2bb865bf5c
commit 3f857fec04
3 changed files with 23 additions and 22 deletions

View File

@@ -24,6 +24,7 @@
package sonia.scm.autoconfig;
import sonia.scm.Platform;
import sonia.scm.repository.HgConfig;
import sonia.scm.util.SystemUtil;
@@ -32,16 +33,17 @@ import java.util.Optional;
public interface AutoConfigurator {
static Optional<AutoConfigurator> get() {
// at the moment we have only support for unix based systems.
if (SystemUtil.isUnix()) {
return Optional.of(new UnixAutoConfigurator(System.getenv()));
}
return Optional.empty();
}
HgConfig configure();
HgConfig configure(Path hg);
static Optional<AutoConfigurator> get() {
// at the moment we have only support for posix based systems
Platform platform = SystemUtil.getPlatform();
if (platform.isPosix()) {
return Optional.of(new PosixAutoConfigurator(System.getenv()));
}
return Optional.empty();
}
}

View File

@@ -48,9 +48,9 @@ import java.util.Map;
import java.util.Optional;
import java.util.Set;
public class UnixAutoConfigurator implements AutoConfigurator {
public class PosixAutoConfigurator implements AutoConfigurator {
private static final Logger LOG = LoggerFactory.getLogger(UnixAutoConfigurator.class);
private static final Logger LOG = LoggerFactory.getLogger(PosixAutoConfigurator.class);
private static final List<String> ADDITIONAL_PATH = ImmutableList.of(
"/usr/bin",
@@ -72,11 +72,11 @@ public class UnixAutoConfigurator implements AutoConfigurator {
return process.getInputStream();
};
UnixAutoConfigurator(Map<String, String> env) {
PosixAutoConfigurator(Map<String, String> env) {
this(env, ADDITIONAL_PATH);
}
UnixAutoConfigurator(Map<String, String> env, List<String> additionalPaths) {
PosixAutoConfigurator(Map<String, String> env, List<String> additionalPaths) {
String path = env.getOrDefault("PATH", "");
fsPaths = new LinkedHashSet<>();
fsPaths.addAll(Splitter.on(File.pathSeparator).splitToList(path));

View File

@@ -27,7 +27,6 @@ package sonia.scm.autoconfig;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import org.assertj.core.util.Strings;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import sonia.scm.repository.HgConfig;
@@ -43,7 +42,7 @@ import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
class UnixAutoConfiguratorTest {
class PosixAutoConfiguratorTest {
@Test
void shouldConfigureWithShebangPath(@TempDir Path directory) throws IOException {
@@ -53,15 +52,15 @@ class UnixAutoConfiguratorTest {
Files.write(hg, ("#!" + python.toAbsolutePath().toString()).getBytes(StandardCharsets.UTF_8));
Files.createFile(python);
UnixAutoConfigurator configurator = create(directory);
PosixAutoConfigurator configurator = create(directory);
HgConfig config = configurator.configure();
assertThat(config.getHgBinary()).isEqualTo(hg.toString());
assertThat(config.getPythonBinary()).isEqualTo(python.toString());
}
private UnixAutoConfigurator create(@TempDir Path directory) {
return new UnixAutoConfigurator(createEnv(directory), Collections.emptyList());
private PosixAutoConfigurator create(@TempDir Path directory) {
return new PosixAutoConfigurator(createEnv(directory), Collections.emptyList());
}
private Map<String, String> createEnv(Path... paths) {
@@ -76,7 +75,7 @@ class UnixAutoConfiguratorTest {
Files.write(hg, "#!/usr/bin/env python3.8".getBytes(StandardCharsets.UTF_8));
Files.createFile(python);
UnixAutoConfigurator configurator = create(directory);
PosixAutoConfigurator configurator = create(directory);
HgConfig config = configurator.configure();
assertThat(config.getHgBinary()).isEqualTo(hg.toString());
@@ -91,7 +90,7 @@ class UnixAutoConfiguratorTest {
Files.createFile(hg);
Files.createFile(python);
UnixAutoConfigurator configurator = create(directory);
PosixAutoConfigurator configurator = create(directory);
HgConfig config = configurator.configure();
assertThat(config.getHgBinary()).isEqualTo(hg.toString());
@@ -106,7 +105,7 @@ class UnixAutoConfiguratorTest {
Files.createFile(hg);
Files.createFile(python);
UnixAutoConfigurator configurator = create(directory);
PosixAutoConfigurator configurator = create(directory);
HgConfig config = configurator.configure();
assertThat(config.getHgBinary()).isEqualTo(hg.toString());
@@ -126,7 +125,7 @@ class UnixAutoConfiguratorTest {
Files.createFile(hg);
Files.createFile(python);
UnixAutoConfigurator configurator = new UnixAutoConfigurator(
PosixAutoConfigurator configurator = new PosixAutoConfigurator(
createEnv(def), ImmutableList.of(additional.toAbsolutePath().toString())
);
@@ -147,7 +146,7 @@ class UnixAutoConfiguratorTest {
Path mercurialModule = modules.resolve("mercurial");
Files.createDirectories(mercurialModule);
UnixAutoConfigurator configurator = create(directory);
PosixAutoConfigurator configurator = create(directory);
configurator.setExecutor((Path binary, String... args) -> {
String content = String.join("\n",
"checking Python executable (/python3.8)",