diff --git a/modules/nextflow/src/main/groovy/nextflow/cli/CmdRun.groovy b/modules/nextflow/src/main/groovy/nextflow/cli/CmdRun.groovy index ea323ff46a..1f1cbbb712 100644 --- a/modules/nextflow/src/main/groovy/nextflow/cli/CmdRun.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/cli/CmdRun.groovy @@ -418,7 +418,7 @@ class CmdRun extends CmdBase implements HubOptions { final isTowerEnabled = config.navigate('tower.enabled') as Boolean final isDataEnabled = config.navigate("lineage.enabled") as Boolean if( isTowerEnabled || isDataEnabled || log.isTraceEnabled() ) - runner.session.resolvedConfig = ConfigBuilder.resolveConfig(scriptFile.parent, this) + runner.session.resolvedConfig = ConfigBuilder.resolveConfig(scriptFile.parent, this, cliParams) // note config files are collected during the build process // this line should be after `ConfigBuilder#build` runner.session.configFiles = builder.parsedConfigFiles diff --git a/modules/nextflow/src/main/groovy/nextflow/config/ConfigBuilder.groovy b/modules/nextflow/src/main/groovy/nextflow/config/ConfigBuilder.groovy index ac19b434d9..0b3e1690e8 100644 --- a/modules/nextflow/src/main/groovy/nextflow/config/ConfigBuilder.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/config/ConfigBuilder.groovy @@ -892,13 +892,14 @@ class ConfigBuilder { } } - static String resolveConfig(Path baseDir, CmdRun cmdRun) { + static String resolveConfig(Path baseDir, CmdRun cmdRun, Map cliParams) { final config = new ConfigBuilder() .setShowClosures(true) .setStripSecrets(true) .setOptions(cmdRun.launcher.options) .setCmdRun(cmdRun) + .setCliParams(cliParams) .setBaseDir(baseDir) .buildConfigObject() diff --git a/modules/nextflow/src/test/groovy/nextflow/config/ConfigBuilderTest.groovy b/modules/nextflow/src/test/groovy/nextflow/config/ConfigBuilderTest.groovy index 465055c600..9ed48d2b26 100644 --- a/modules/nextflow/src/test/groovy/nextflow/config/ConfigBuilderTest.groovy +++ b/modules/nextflow/src/test/groovy/nextflow/config/ConfigBuilderTest.groovy @@ -2352,6 +2352,7 @@ class ConfigBuilderTest extends Specification { process { executor = { 'local' } } + outputDir = params.outdir } second { params.none = 'Blah' @@ -2361,11 +2362,13 @@ class ConfigBuilderTest extends Specification { when: def opt = new CliOptions(config: [configFile.toFile().canonicalPath]) def cmd = new CmdRun(profile: 'first', withTower: 'http://foo.com', launcher: new Launcher(options: opt)) - def txt = ConfigBuilder.resolveConfig(base, cmd) + def cliParams = [foo: 'Hola', outdir: 'output_folder'] + def txt = ConfigBuilder.resolveConfig(base, cmd, cliParams) then: txt == '''\ params { - foo = 'Hello world' + foo = 'Hola' + outdir = 'output_folder' awsKey = '[secret]' } @@ -2373,6 +2376,7 @@ class ConfigBuilderTest extends Specification { executor = { 'local' } } + outputDir = 'output_folder' outputFormat = 'text' workDir = 'work'