src/main/kotlin/de/uapcore/lightpit/vcs/HgConnector.kt

changeset 281
c15b9555ecf3
parent 280
12b898531d1a
equal deleted inserted replaced
280:12b898531d1a 281:c15b9555ecf3
25 */ 25 */
26 26
27 package de.uapcore.lightpit.vcs 27 package de.uapcore.lightpit.vcs
28 28
29 import java.nio.file.Files 29 import java.nio.file.Files
30 import java.nio.file.Path
31 import kotlin.io.path.ExperimentalPathApi 30 import kotlin.io.path.ExperimentalPathApi
32 import kotlin.io.path.deleteRecursively 31 import kotlin.io.path.deleteRecursively
33 32
34 /** 33 /**
35 * A connector for Mercurial repositories. 34 * A connector for Mercurial repositories.
40 39
41 /** 40 /**
42 * Checks, if the specified binary is available and executable. 41 * Checks, if the specified binary is available and executable.
43 */ 42 */
44 fun checkAvailability(): Boolean { 43 fun checkAvailability(): Boolean {
45 return when (val versionInfo = invokeCommand(Path.of("."), "--version")) { 44 return when (val versionInfo = invokeCommand("--version")) {
46 is VcsConnectorResult.Success -> versionInfo.content.contains("Mercurial") 45 is VcsConnectorResult.Success -> versionInfo.content.contains("Mercurial")
47 else -> false 46 else -> false
48 } 47 }
49 } 48 }
50 49
59 val tmpDir = try { 58 val tmpDir = try {
60 Files.createTempDirectory("lightpit-vcs-") 59 Files.createTempDirectory("lightpit-vcs-")
61 } catch (e: Throwable) { 60 } catch (e: Throwable) {
62 return VcsConnectorResult.Error("Creating temporary directory for VCS connection failed: " + e.message) 61 return VcsConnectorResult.Error("Creating temporary directory for VCS connection failed: " + e.message)
63 } 62 }
64 val init = invokeCommand(tmpDir, "init") 63 val init = invokeCommand("init", workingDir = tmpDir)
65 if (init is VcsConnectorResult.Error) { 64 if (init is VcsConnectorResult.Error) {
66 return init 65 return init
67 } 66 }
68 67
69 val commitLogContent = when (val result = invokeCommand( 68 val commitLogContent = when (val result = invokeCommand(
70 tmpDir, "incoming", pathOrUrl, "-n", "--template", "::lpitref::{node}:{desc}\\n" 69 "incoming", pathOrUrl, "-n", "--template", "::lpitref::{node}:{desc}\\n",
70 workingDir = tmpDir,
71 timeout = 60
71 )) { 72 )) {
72 is VcsConnectorResult.Error -> return result 73 is VcsConnectorResult.Error -> return result
73 is VcsConnectorResult.Success -> result.content 74 is VcsConnectorResult.Success -> result.content
74 } 75 }
75 76

mercurial