From 2bb865bf5ce9379fffa39728b040f276162ad8f5 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 1 Jul 2020 15:28:37 +0200 Subject: [PATCH] fixes python module path detection --- .../java/sonia/scm/autoconfig/UnixAutoConfigurator.java | 4 +++- .../java/sonia/scm/repository/HgRepositoryHandler.java | 9 ++++++++- .../sonia/scm/autoconfig/UnixAutoConfiguratorTest.java | 5 ++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/autoconfig/UnixAutoConfigurator.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/autoconfig/UnixAutoConfigurator.java index 01364e39aa..b24aaf3334 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/autoconfig/UnixAutoConfigurator.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/autoconfig/UnixAutoConfigurator.java @@ -123,7 +123,9 @@ public class UnixAutoConfigurator implements AutoConfigurator { int end = line.indexOf(")"); Path modulePath = Paths.get(line.substring(start + 1, end)); if (Files.exists(modulePath)) { - return Optional.of(modulePath); + // installed modules contains the path to the mercurial module, + // but we need the parent for the python path + return Optional.of(modulePath.getParent()); } else { LOG.warn("could not find module path at {}", modulePath); } diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java index a349a1f83c..bdc36eb54b 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java @@ -143,7 +143,14 @@ public class HgRepositoryHandler if (autoConfigurator.isPresent()) { config = autoConfigurator.get().configure(); } - doAutoConfiguration(config != null ? config : new HgConfig()); + + if (config != null && config.isValid()) { + this.config = config; + storeConfig(); + } else { + // do the old configuration + doAutoConfiguration(config != null ? config : new HgConfig()); + } } } diff --git a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/autoconfig/UnixAutoConfiguratorTest.java b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/autoconfig/UnixAutoConfiguratorTest.java index e0c09815f3..d3abc89d2f 100644 --- a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/autoconfig/UnixAutoConfiguratorTest.java +++ b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/autoconfig/UnixAutoConfiguratorTest.java @@ -144,12 +144,15 @@ class UnixAutoConfiguratorTest { Path modules = directory.resolve("modules"); Files.createDirectories(modules); + Path mercurialModule = modules.resolve("mercurial"); + Files.createDirectories(mercurialModule); + UnixAutoConfigurator configurator = create(directory); configurator.setExecutor((Path binary, String... args) -> { String content = String.join("\n", "checking Python executable (/python3.8)", "checking Python lib (/python3.8)...", - "checking installed modules (" + modules.toString() + ")...", + "checking installed modules (" + mercurialModule.toString() + ")...", "checking templates (/mercurial/templates)...", "checking default template (/mercurial/templates/map-cmdline.default))" );