mirror of
https://github.com/scm-manager/scm-manager.git
synced 2026-01-22 23:42:11 +01:00
improve mercurial installer
This commit is contained in:
@@ -37,6 +37,7 @@ package sonia.scm.installer;
|
||||
|
||||
import sonia.scm.repository.HgConfig;
|
||||
import sonia.scm.util.IOUtil;
|
||||
import sonia.scm.util.Util;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
@@ -74,8 +75,16 @@ public class UnixHgInstaller extends AbstractHgInstaller
|
||||
public void install(File baseDirectory, HgConfig config) throws IOException
|
||||
{
|
||||
super.install(baseDirectory, config);
|
||||
config.setHgBinary(IOUtil.search(COMMAND_HG));
|
||||
config.setPythonBinary(IOUtil.search(COMMAND_PYTHON));
|
||||
|
||||
if (Util.isEmpty(config.getHgBinary()))
|
||||
{
|
||||
config.setHgBinary(IOUtil.search(COMMAND_HG));
|
||||
}
|
||||
|
||||
if (Util.isEmpty(config.getPythonBinary()))
|
||||
{
|
||||
config.setPythonBinary(IOUtil.search(COMMAND_PYTHON));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -118,18 +118,26 @@ public class WindowsHgInstaller extends AbstractHgInstaller
|
||||
{
|
||||
super.install(baseDirectory, config);
|
||||
|
||||
String pythonBinary = getPythonBinary();
|
||||
|
||||
config.setPythonBinary(pythonBinary);
|
||||
|
||||
File hgScript = getMercurialScript(pythonBinary);
|
||||
File hgDirectory = getMercurialDirectory();
|
||||
|
||||
if (hgScript != null)
|
||||
if (Util.isEmpty(config.getPythonBinary()))
|
||||
{
|
||||
config.setHgBinary(hgScript.getAbsolutePath());
|
||||
String pythonBinary = getPythonBinary();
|
||||
|
||||
config.setPythonBinary(pythonBinary);
|
||||
}
|
||||
else if (hgDirectory != null)
|
||||
|
||||
if (Util.isEmpty(config.getHgBinary()))
|
||||
{
|
||||
File hgScript = getMercurialScript(config.getPythonBinary());
|
||||
|
||||
if (hgScript != null)
|
||||
{
|
||||
config.setHgBinary(hgScript.getAbsolutePath());
|
||||
}
|
||||
}
|
||||
|
||||
File hgDirectory = getMercurialDirectory(config.getHgBinary());
|
||||
|
||||
if (hgDirectory != null)
|
||||
{
|
||||
installHg(baseDirectory, config, hgDirectory);
|
||||
}
|
||||
@@ -304,9 +312,34 @@ public class WindowsHgInstaller extends AbstractHgInstaller
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
*
|
||||
* @param hgBinary
|
||||
* @return
|
||||
*/
|
||||
private File getMercurialDirectory()
|
||||
private File getMercurialDirectory(String hgBinary)
|
||||
{
|
||||
File directory = null;
|
||||
File hg = new File(hgBinary);
|
||||
|
||||
if (hg.exists() && hg.isFile())
|
||||
{
|
||||
directory = hg.getParentFile();
|
||||
}
|
||||
else
|
||||
{
|
||||
directory = getMercurialDirectoryFromRegistry();
|
||||
}
|
||||
|
||||
return directory;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private File getMercurialDirectoryFromRegistry()
|
||||
{
|
||||
File directory = null;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user