diff --git a/node/src/main/kotlin/net/corda/node/NodeCmdLineOptions.kt b/node/src/main/kotlin/net/corda/node/NodeCmdLineOptions.kt index d530ae4d41..0674cf757f 100644 --- a/node/src/main/kotlin/net/corda/node/NodeCmdLineOptions.kt +++ b/node/src/main/kotlin/net/corda/node/NodeCmdLineOptions.kt @@ -34,7 +34,7 @@ open class SharedNodeCmdLineOptions { description = ["The path to the config file. By default this is node.conf in the base directory."] ) private var _configFile: Path? = null - val configFile: Path get() = _configFile ?: (baseDirectory / "node.conf") + val configFile: Path get() = if (_configFile != null) baseDirectory.resolve(_configFile) else (baseDirectory / "node.conf") @Option( names = ["--on-unknown-config-keys"], diff --git a/node/src/test/kotlin/net/corda/node/internal/NodeStartupCliTest.kt b/node/src/test/kotlin/net/corda/node/internal/NodeStartupCliTest.kt index 119729ac76..1ebcbf93fb 100644 --- a/node/src/test/kotlin/net/corda/node/internal/NodeStartupCliTest.kt +++ b/node/src/test/kotlin/net/corda/node/internal/NodeStartupCliTest.kt @@ -22,7 +22,7 @@ class NodeStartupCliTest { companion object { private lateinit var workingDirectory: Path - + private var customNodeConf = "custom_node.conf" @BeforeClass @JvmStatic fun initDirectories() { @@ -56,6 +56,18 @@ class NodeStartupCliTest { Assertions.assertThat(startup.cmdLineOptions.networkRootTrustStorePathParameter).isEqualTo(null) } + @Test(timeout=300_000) + fun `--nodeconf using relative path will be changed to absolute path`() { + CommandLine.populateCommand(startup, CommonCliConstants.CONFIG_FILE, customNodeConf) + Assertions.assertThat(startup.cmdLineOptions.configFile).isEqualTo(workingDirectory / customNodeConf) + } + + @Test(timeout=300_000) + fun `--nodeconf using absolute path will not be changed`() { + CommandLine.populateCommand(startup, CommonCliConstants.CONFIG_FILE, "/$customNodeConf") + Assertions.assertThat(startup.cmdLineOptions.configFile).isEqualTo( "/" / customNodeConf) + } + @Test(timeout=3_000) @Ignore fun `test logs are written to correct location correctly if verbose flag set`() { diff --git a/tools/cliutils/src/main/kotlin/net/corda/cliutils/CordaCliWrapper.kt b/tools/cliutils/src/main/kotlin/net/corda/cliutils/CordaCliWrapper.kt index ce4d01ce3e..8bb9cb6432 100644 --- a/tools/cliutils/src/main/kotlin/net/corda/cliutils/CordaCliWrapper.kt +++ b/tools/cliutils/src/main/kotlin/net/corda/cliutils/CordaCliWrapper.kt @@ -211,6 +211,7 @@ fun printError(message: String) = System.err.println("${ShellConstants.RED}$mess */ object CommonCliConstants { const val BASE_DIR = "--base-directory" + const val CONFIG_FILE = "--config-file" } /**