@@ -130,11 +130,11 @@ class SchemaValidator extends PluginExtensionPoint {
130
130
//
131
131
// Resolve Schema path relative to main workflow directory
132
132
//
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
136
136
} else {
137
- return " ${ baseDir} /${ schema_filename } "
137
+ return " ${ baseDir} /${ schemaFilename } "
138
138
}
139
139
}
140
140
@@ -221,9 +221,6 @@ class SchemaValidator extends PluginExtensionPoint {
221
221
if ( ! params. containsKey(" validationLenientMode" ) ) {
222
222
params. validationLenientMode = false
223
223
}
224
- if ( ! params. containsKey(" monochrome_logs" ) ) {
225
- params. monochrome_logs = false
226
- }
227
224
if ( ! params. containsKey(" help" ) ) {
228
225
params. help = false
229
226
}
@@ -251,7 +248,6 @@ class SchemaValidator extends PluginExtensionPoint {
251
248
def List expectedParams = [
252
249
" validationFailUnrecognisedParams" ,
253
250
" validationLenientMode" ,
254
- " monochrome_logs" ,
255
251
" help" ,
256
252
" validationShowHiddenParams" ,
257
253
" validationSchemaIgnoreParams" ,
@@ -268,11 +264,18 @@ class SchemaValidator extends PluginExtensionPoint {
268
264
* whether the given parameters adhere to the specifications
269
265
*/
270
266
@Function
271
- void validateParameters (String schema_filename = ' nextflow_schema.json' ) {
267
+ void validateParameters (
268
+ Map options = null ,
269
+ String schemaFilename
270
+ ) {
272
271
273
272
def Map params = initialiseExpectedParams(session. params)
274
273
def String baseDir = session. baseDir
275
274
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
276
279
log. debug " Starting parameters validation"
277
280
278
281
// Clean the parameters
@@ -283,7 +286,7 @@ class SchemaValidator extends PluginExtensionPoint {
283
286
// =====================================================================//
284
287
// Check for nextflow core params and unexpected params
285
288
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 )) )
287
290
def Map schemaParams = (Map ) parsed. get(' definitions' )
288
291
def specifiedParamKeys = params. keySet()
289
292
@@ -335,7 +338,7 @@ class SchemaValidator extends PluginExtensionPoint {
335
338
336
339
// =====================================================================//
337
340
// 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 )) )
339
342
final rawSchema = new JSONObject (new JSONTokener (schema_string))
340
343
final SchemaLoader schemaLoader = SchemaLoader . builder()
341
344
.schemaJson(rawSchema)
@@ -352,8 +355,7 @@ class SchemaValidator extends PluginExtensionPoint {
352
355
}
353
356
354
357
// Colors
355
- def Boolean monochrome_logs = params. monochrome_logs
356
- def colors = logColours(monochrome_logs)
358
+ def colors = logColours(useMonochromeLogs)
357
359
358
360
// Validate
359
361
try {
@@ -412,7 +414,7 @@ class SchemaValidator extends PluginExtensionPoint {
412
414
fileContent = file_path. splitCsv(header :true , strip :true , sep :delimiter)
413
415
fileContentCasted = castToType(fileContent, types)
414
416
}
415
- if (validateFile(monochrome_logs , key, fileContentCasted, schema_name, baseDir, s3PathCheck)) {
417
+ if (validateFile(useMonochromeLogs , key, fileContentCasted, schema_name, baseDir, s3PathCheck)) {
416
418
log. debug " Validation passed: '$key ': '$file_path ' with '$schema_name '"
417
419
}
418
420
}
@@ -426,13 +428,13 @@ class SchemaValidator extends PluginExtensionPoint {
426
428
//
427
429
// Function to obtain the variable types of properties from a JSON Schema
428
430
//
429
- Map variableTypes (String schema_filename , String baseDir ) {
431
+ Map variableTypes (String schemaFilename , String baseDir ) {
430
432
def Map variableTypes = [:]
431
433
def String type = ' '
432
434
433
435
// Read the schema
434
436
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 )) )
436
438
437
439
// Obtain the type of each variable in the schema
438
440
def Map properties = (Map ) parsed[' items' ][' properties' ]
@@ -505,11 +507,13 @@ class SchemaValidator extends PluginExtensionPoint {
505
507
//
506
508
/* groovylint-disable-next-line UnusedPrivateMethodParameter */
507
509
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
+
509
513
) {
510
514
511
515
// 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 )) )
513
517
final rawSchema = new JSONObject (new JSONTokener (schema_string))
514
518
final SchemaLoader schemaLoader = SchemaLoader . builder()
515
519
.schemaJson(rawSchema)
@@ -531,7 +535,7 @@ class SchemaValidator extends PluginExtensionPoint {
531
535
// =====================================================================//
532
536
// Check for params with expected values
533
537
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 )) )
535
539
def Map schemaParams = (Map ) [" items" : parsed. get(' items' )]
536
540
537
541
// Collect expected parameters from the schema
@@ -660,16 +664,25 @@ class SchemaValidator extends PluginExtensionPoint {
660
664
// Beautify parameters for --help
661
665
//
662
666
@Function
663
- String paramsHelp (String command , String schema_filename = ' nextflow_schema.json' ) {
667
+ String paramsHelp (
668
+ Map options = null ,
669
+ String command
670
+ ) {
664
671
def Map params = initialiseExpectedParams(session. params)
665
672
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)
668
681
Integer num_hidden = 0
669
682
String output = ' '
670
683
output + = ' Typical pipeline command:\n\n '
671
684
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 )) )
673
686
Integer max_chars = paramsMaxChars(params_map) + 1
674
687
Integer desc_indent = max_chars + 14
675
688
Integer dec_linewidth = 160 - desc_indent
@@ -753,7 +766,7 @@ class SchemaValidator extends PluginExtensionPoint {
753
766
// Groovy Map summarising parameters/workflow options used by the pipeline
754
767
//
755
768
@Function
756
- public LinkedHashMap paramsSummaryMap (WorkflowMetadata workflow , String schema_filename = ' nextflow_schema.json' ) {
769
+ public LinkedHashMap paramsSummaryMap (WorkflowMetadata workflow , String schemaFilename = ' nextflow_schema.json' ) {
757
770
758
771
def String baseDir = session. baseDir
759
772
def Map params = session. params
@@ -780,7 +793,7 @@ class SchemaValidator extends PluginExtensionPoint {
780
793
781
794
// Get pipeline parameters defined in JSON Schema
782
795
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 )) )
784
797
for (group in params_map. keySet()) {
785
798
def sub_params = new LinkedHashMap ()
786
799
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 {
828
841
// Beautify parameters for summary and return as string
829
842
//
830
843
@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
+ ) {
832
848
833
849
def String baseDir = session. baseDir
834
850
def Map params = session. params
835
851
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)
838
859
String output = ' '
839
- def LinkedHashMap params_map = paramsSummaryMap(workflow, schema_filename )
860
+ def LinkedHashMap params_map = paramsSummaryMap(workflow, schemaFilename )
840
861
def max_chars = paramsMaxChars(params_map)
841
862
for (group in params_map. keySet()) {
842
863
def Map group_params = params_map. get(group) as Map // This gets the parameters of that particular group
0 commit comments