#!/usr/bin/env cwl-runner
cwlVersion: v1.2
class: CommandLineTool
requirements:
  InitialWorkDirRequirement:
    listing:
      - entryname: validate-cwls.sh
        entry: |-
            arcRoot=$1
            cwlPattern=$2
            outWflList=$3
            outValidation=$4

            find "$arcRoot"/ -name "$cwlPattern" > "$outWflList"

            while IFS= read -r wfl; do
              printf '%s %s\n' "------------------" >> "$outValidation"
              printf '%s %s\n' "$wfl" >> "$outValidation"
              cwltool --validate "$wfl" >> "$outValidation"
              printf '%s %s\n' "------------------" >> "$outValidation"
            done <  "$outWflList"

baseCommand: ["bash", "validate-cwls.sh"]

inputs:
    arcRoot:
        type: Directory
        inputBinding:
            position: 1
    cwlPattern:
        type: string
        inputBinding:
            position: 2
    outWflList:
        type: string
        inputBinding:
            position: 3
    outValidation:
        type: string
        inputBinding:
            position: 4

stdout: $(inputs.outValidation)

outputs:
  output_file:
    type: stdout