@@ -130,11 +130,11 @@ class SchemaValidator extends PluginExtensionPoint {
130130 //
131131 // Resolve Schema path relative to main workflow directory
132132 //
133- static String getSchemaPath (String baseDir , String schema_filename = ' nextflow_schema.json' ) {
134- if (Path . of(schema_filename ). exists()) {
135- return schema_filename
133+ static String getSchemaPath (String baseDir , String schemaFilename = ' nextflow_schema.json' ) {
134+ if (Path . of(schemaFilename ). exists()) {
135+ return schemaFilename
136136 } else {
137- return " ${ baseDir} /${ schema_filename } "
137+ return " ${ baseDir} /${ schemaFilename } "
138138 }
139139 }
140140
@@ -221,9 +221,6 @@ class SchemaValidator extends PluginExtensionPoint {
221221 if ( ! params. containsKey(" validationLenientMode" ) ) {
222222 params. validationLenientMode = false
223223 }
224- if ( ! params. containsKey(" monochrome_logs" ) ) {
225- params. monochrome_logs = false
226- }
227224 if ( ! params. containsKey(" help" ) ) {
228225 params. help = false
229226 }
@@ -251,7 +248,6 @@ class SchemaValidator extends PluginExtensionPoint {
251248 def List expectedParams = [
252249 " validationFailUnrecognisedParams" ,
253250 " validationLenientMode" ,
254- " monochrome_logs" ,
255251 " help" ,
256252 " validationShowHiddenParams" ,
257253 " validationSchemaIgnoreParams" ,
@@ -268,11 +264,18 @@ class SchemaValidator extends PluginExtensionPoint {
268264 * whether the given parameters adhere to the specifications
269265 */
270266 @Function
271- void validateParameters (String schema_filename = ' nextflow_schema.json' ) {
267+ void validateParameters (
268+ Map options = null ,
269+ String schemaFilename
270+ ) {
272271
273272 def Map params = initialiseExpectedParams(session. params)
274273 def String baseDir = session. baseDir
275274 def Boolean s3PathCheck = params. validationS3PathCheck ? params. validationS3PathCheck : false
275+ def Boolean useMonochromeLogs = options?. containsKey(' monochrome_logs' ) ? options. monochrome_logs as Boolean :
276+ params. monochrome_logs ? params. monochrome_logs as Boolean :
277+ params. monochromeLogs ? params. monochromeLogs as Boolean :
278+ false
276279 log. debug " Starting parameters validation"
277280
278281 // Clean the parameters
@@ -283,7 +286,7 @@ class SchemaValidator extends PluginExtensionPoint {
283286 // =====================================================================//
284287 // Check for nextflow core params and unexpected params
285288 def slurper = new JsonSlurper ()
286- def Map parsed = (Map ) slurper. parse( Path . of(getSchemaPath(baseDir, schema_filename )) )
289+ def Map parsed = (Map ) slurper. parse( Path . of(getSchemaPath(baseDir, schemaFilename )) )
287290 def Map schemaParams = (Map ) parsed. get(' definitions' )
288291 def specifiedParamKeys = params. keySet()
289292
@@ -335,7 +338,7 @@ class SchemaValidator extends PluginExtensionPoint {
335338
336339 // =====================================================================//
337340 // Validate parameters against the schema
338- def String schema_string = Files . readString( Path . of(getSchemaPath(baseDir, schema_filename )) )
341+ def String schema_string = Files . readString( Path . of(getSchemaPath(baseDir, schemaFilename )) )
339342 final rawSchema = new JSONObject (new JSONTokener (schema_string))
340343 final SchemaLoader schemaLoader = SchemaLoader . builder()
341344 .schemaJson(rawSchema)
@@ -352,8 +355,7 @@ class SchemaValidator extends PluginExtensionPoint {
352355 }
353356
354357 // Colors
355- def Boolean monochrome_logs = params. monochrome_logs
356- def colors = logColours(monochrome_logs)
358+ def colors = logColours(useMonochromeLogs)
357359
358360 // Validate
359361 try {
@@ -412,7 +414,7 @@ class SchemaValidator extends PluginExtensionPoint {
412414 fileContent = file_path. splitCsv(header :true , strip :true , sep :delimiter)
413415 fileContentCasted = castToType(fileContent, types)
414416 }
415- if (validateFile(monochrome_logs , key, fileContentCasted, schema_name, baseDir, s3PathCheck)) {
417+ if (validateFile(useMonochromeLogs , key, fileContentCasted, schema_name, baseDir, s3PathCheck)) {
416418 log. debug " Validation passed: '$key ': '$file_path ' with '$schema_name '"
417419 }
418420 }
@@ -426,13 +428,13 @@ class SchemaValidator extends PluginExtensionPoint {
426428 //
427429 // Function to obtain the variable types of properties from a JSON Schema
428430 //
429- Map variableTypes (String schema_filename , String baseDir ) {
431+ Map variableTypes (String schemaFilename , String baseDir ) {
430432 def Map variableTypes = [:]
431433 def String type = ' '
432434
433435 // Read the schema
434436 def slurper = new JsonSlurper ()
435- def Map parsed = (Map ) slurper. parse( Path . of(getSchemaPath(baseDir, schema_filename )) )
437+ def Map parsed = (Map ) slurper. parse( Path . of(getSchemaPath(baseDir, schemaFilename )) )
436438
437439 // Obtain the type of each variable in the schema
438440 def Map properties = (Map ) parsed[' items' ][' properties' ]
@@ -505,11 +507,13 @@ class SchemaValidator extends PluginExtensionPoint {
505507 //
506508 /* groovylint-disable-next-line UnusedPrivateMethodParameter */
507509 boolean validateFile (
508- Boolean monochrome_logs , String paramName , Object fileContent , String schema_filename , String baseDir , Boolean s3PathCheck = false
510+
511+ Boolean monochrome_logs , String paramName , Object fileContent , String schemaFilename , String baseDir , Boolean s3PathCheck = false
512+
509513 ) {
510514
511515 // Load the schema
512- def String schema_string = Files . readString( Path . of(getSchemaPath(baseDir, schema_filename )) )
516+ def String schema_string = Files . readString( Path . of(getSchemaPath(baseDir, schemaFilename )) )
513517 final rawSchema = new JSONObject (new JSONTokener (schema_string))
514518 final SchemaLoader schemaLoader = SchemaLoader . builder()
515519 .schemaJson(rawSchema)
@@ -531,7 +535,7 @@ class SchemaValidator extends PluginExtensionPoint {
531535 // =====================================================================//
532536 // Check for params with expected values
533537 def slurper = new JsonSlurper ()
534- def Map parsed = (Map ) slurper. parse( Path . of(getSchemaPath(baseDir, schema_filename )) )
538+ def Map parsed = (Map ) slurper. parse( Path . of(getSchemaPath(baseDir, schemaFilename )) )
535539 def Map schemaParams = (Map ) [" items" : parsed. get(' items' )]
536540
537541 // Collect expected parameters from the schema
@@ -660,16 +664,25 @@ class SchemaValidator extends PluginExtensionPoint {
660664 // Beautify parameters for --help
661665 //
662666 @Function
663- String paramsHelp (String command , String schema_filename = ' nextflow_schema.json' ) {
667+ String paramsHelp (
668+ Map options = null ,
669+ String command
670+ ) {
664671 def Map params = initialiseExpectedParams(session. params)
665672 def String baseDir = session. baseDir
666- def Boolean monochrome_logs = params. monochrome_logs
667- def colors = logColours(monochrome_logs)
673+
674+ def String schemaFilename = options?. containsKey(' parameters_schema' ) ? options. parameters_schema as String : ' nextflow_schema.json'
675+ def Boolean useMonochromeLogs = options?. containsKey(' monochrome_logs' ) ? options. monochrome_logs as Boolean :
676+ params. monochrome_logs ? params. monochrome_logs as Boolean :
677+ params. monochromeLogs ? params. monochromeLogs as Boolean :
678+ false
679+
680+ def colors = logColours(useMonochromeLogs)
668681 Integer num_hidden = 0
669682 String output = ' '
670683 output + = ' Typical pipeline command:\n\n '
671684 output + = " ${ colors.cyan}${ command}${ colors.reset} \n\n "
672- Map params_map = paramsLoad( Path . of(getSchemaPath(baseDir, schema_filename )) )
685+ Map params_map = paramsLoad( Path . of(getSchemaPath(baseDir, schemaFilename )) )
673686 Integer max_chars = paramsMaxChars(params_map) + 1
674687 Integer desc_indent = max_chars + 14
675688 Integer dec_linewidth = 160 - desc_indent
@@ -753,7 +766,7 @@ class SchemaValidator extends PluginExtensionPoint {
753766 // Groovy Map summarising parameters/workflow options used by the pipeline
754767 //
755768 @Function
756- public LinkedHashMap paramsSummaryMap (WorkflowMetadata workflow , String schema_filename = ' nextflow_schema.json' ) {
769+ public LinkedHashMap paramsSummaryMap (WorkflowMetadata workflow , String schemaFilename = ' nextflow_schema.json' ) {
757770
758771 def String baseDir = session. baseDir
759772 def Map params = session. params
@@ -780,7 +793,7 @@ class SchemaValidator extends PluginExtensionPoint {
780793
781794 // Get pipeline parameters defined in JSON Schema
782795 def Map params_summary = [:]
783- def Map params_map = paramsLoad( Path . of(getSchemaPath(baseDir, schema_filename )) )
796+ def Map params_map = paramsLoad( Path . of(getSchemaPath(baseDir, schemaFilename )) )
784797 for (group in params_map. keySet()) {
785798 def sub_params = new LinkedHashMap ()
786799 def Map group_params = params_map. get(group) as Map // This gets the parameters of that particular group
@@ -828,15 +841,23 @@ class SchemaValidator extends PluginExtensionPoint {
828841 // Beautify parameters for summary and return as string
829842 //
830843 @Function
831- public String paramsSummaryLog (WorkflowMetadata workflow , String schema_filename = ' nextflow_schema.json' ) {
844+ public String paramsSummaryLog (
845+ Map options = null ,
846+ WorkflowMetadata workflow
847+ ) {
832848
833849 def String baseDir = session. baseDir
834850 def Map params = session. params
835851
836- def Boolean monochrome_logs = params. monochrome_logs
837- def colors = logColours(monochrome_logs)
852+ def String schemaFilename = options?. containsKey(' parameters_schema' ) ? options. parameters_schema as String : ' nextflow_schema.json'
853+ def Boolean useMonochromeLogs = options?. containsKey(' monochrome_logs' ) ? options. monochrome_logs as Boolean :
854+ params. monochrome_logs ? params. monochrome_logs as Boolean :
855+ params. monochromeLogs ? params. monochromeLogs as Boolean :
856+ false
857+
858+ def colors = logColours(useMonochromeLogs)
838859 String output = ' '
839- def LinkedHashMap params_map = paramsSummaryMap(workflow, schema_filename )
860+ def LinkedHashMap params_map = paramsSummaryMap(workflow, schemaFilename )
840861 def max_chars = paramsMaxChars(params_map)
841862 for (group in params_map. keySet()) {
842863 def Map group_params = params_map. get(group) as Map // This gets the parameters of that particular group
0 commit comments