summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2021-05-15 20:16:53 +0530
committerArun Isaac2021-05-15 20:16:53 +0530
commit501d662fc6901c94ab2e0810243abddad5e71a5c (patch)
tree170d872eb30b9be62b100d9f526fae27adda3f31
parentf4cbc106bc317724f26b5c01126dcccc06059cc4 (diff)
downloadccwl-501d662fc6901c94ab2e0810243abddad5e71a5c.tar.gz
ccwl-501d662fc6901c94ab2e0810243abddad5e71a5c.tar.lz
ccwl-501d662fc6901c94ab2e0810243abddad5e71a5c.zip
Do not convert YAML symbols from kebab case to camel case.
Doing this conversion effectively forbids kebab case symbols in YAML.

* ccwl/yaml.scm (kebab->camel): Delete function.
(display-atom): Do not convert symbols from kebab case to camel case.
* ccwl/ccwl.scm (make-workflow, output->cwl, command->cwl): Write
camel case explicitly.
-rw-r--r--ccwl/ccwl.scm24
-rw-r--r--ccwl/yaml.scm12
2 files changed, 14 insertions, 22 deletions
diff --git a/ccwl/ccwl.scm b/ccwl/ccwl.scm
index f16a9e7..3869bb1 100644
--- a/ccwl/ccwl.scm
+++ b/ccwl/ccwl.scm
@@ -144,9 +144,9 @@
 
 (define* (make-workflow steps outputs #:key (other '()))
   "Build a Workflow class CWL workflow."
-  `((cwl-version . ,%cwl-version)
+  `((cwlVersion . ,%cwl-version)
     (class . Workflow)
-    (requirements (Subworkflow-feature-requirement))
+    (requirements (SubworkflowFeatureRequirement))
     ,@other
     (inputs . ,(map (lambda (input)
                       `(,(input-id input)
@@ -172,9 +172,9 @@
                          (type . ,(match (output-type output)
                                     ('stdout 'File)
                                     (some-other-type some-other-type)))
-                         (output-source . ,(match (output-source output)
-                                             ((? string? source) source)
-                                             ((? input? input) (input-id input))))))
+                         (outputSource . ,(match (output-source output)
+                                            ((? string? source) source)
+                                            ((? input? input) (input-id input))))))
                      outputs))
     (steps . ,(map (lambda (step)
                      `(,(step-id step)
@@ -198,7 +198,7 @@
               (list (and (output-type output)
                          (cons 'type (output-type output)))
                     (and (output-binding output)
-                         (cons 'output-binding (output-binding output)))))
+                         (cons 'outputBinding (output-binding output)))))
     ,@(output-other output)))
 
 (define-immutable-record-type <cli-element>
@@ -226,15 +226,15 @@
                  position))
               (command-args command)
               (iota (length (command-args command))))))
-    `((cwl-version . ,%cwl-version)
-      (class . Command-line-tool)
+    `((cwlVersion . ,%cwl-version)
+      (class . CommandLineTool)
       ,@(command-other command)
       (arguments . ,(list->vector
                      ;; Put string arguments into the arguments array.
                      (filter-map (lambda (element)
                                    (and (string? (cli-element-argument element))
                                         `((position . ,(cli-element-position element))
-                                          (value-from . ,(cli-element-argument element)))))
+                                          (valueFrom . ,(cli-element-argument element)))))
                                  elements)))
       (inputs . ,(append
                   ;; Put <input> arguments into the inputs array.
@@ -247,9 +247,9 @@
                                               (label . ,(input-label input))
                                               (default . ,(and (not (unspecified-default? (input-default input)))
                                                                (input-default input)))
-                                              (input-binding . ,(filter-alist
-                                                                 `((position . ,(cli-element-position element))
-                                                                   (prefix . ,(input-prefix input)))))))
+                                              (inputBinding . ,(filter-alist
+                                                                `((position . ,(cli-element-position element))
+                                                                  (prefix . ,(input-prefix input)))))))
                                          ,@(input-other input)))))
                               elements)
                   (map (lambda (input)
diff --git a/ccwl/yaml.scm b/ccwl/yaml.scm
index 19f26c2..256ba1d 100644
--- a/ccwl/yaml.scm
+++ b/ccwl/yaml.scm
@@ -33,19 +33,11 @@
   #:export (scm->yaml
             scm->yaml-string))
 
-(define (kebab->camel string)
-  "Convert STRING from kebab case to CAMEL case."
-  (match (string-split string #\-)
-    ((head tail ...)
-     (string-concatenate
-      (cons head (map string-titlecase tail))))))
-
 (define (display-atom atom port)
-  "Display ATOM in PORT converting from kebab case to camel case if
-ATOM is a symbol."
+  "Display ATOM in PORT."
   (cond
    ((symbol? atom)
-    (display (string->symbol (kebab->camel (symbol->string atom))) port))
+    (display-atom (symbol->string atom) port))
    ((number? atom)
     (display atom port))
    ((string? atom)