From 2df1921c9abf756eb2bcb9e99f8ba02eae1a8c53 Mon Sep 17 00:00:00 2001
From: Arun Isaac
Date: Tue, 23 Feb 2021 23:04:30 +0530
Subject: Initial commit
---
generate-cwl/generate-cwl.scm | 183 ++++++++++++++++++++++++++++++++++++++++++
generate-cwl/yaml.scm | 85 ++++++++++++++++++++
2 files changed, 268 insertions(+)
create mode 100644 generate-cwl/generate-cwl.scm
create mode 100644 generate-cwl/yaml.scm
(limited to 'generate-cwl')
diff --git a/generate-cwl/generate-cwl.scm b/generate-cwl/generate-cwl.scm
new file mode 100644
index 0000000..03ce77d
--- /dev/null
+++ b/generate-cwl/generate-cwl.scm
@@ -0,0 +1,183 @@
+;;
+;; CWL generator
+;;
+;; This file implements a generator to generate CWL files.
+
+(define-module (generate-cwl generate-cwl)
+ #:use-module (rnrs records syntactic)
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-71)
+ #:use-module (ice-9 match)
+ #:export (clitool
+ workflow
+ input
+ output
+ step
+ workflow-output))
+
+(define-record-type ( make-input input?)
+ (fields (immutable id input-id)
+ (immutable type input-type)
+ (immutable default input-default)
+ (immutable label input-label)
+ (immutable other input-other)))
+
+(define-record-type unspecified-default)
+
+(define* (input id #:key type label (default (make-unspecified-default)) (other '()))
+ "Build and return an object."
+ (make-input id type default label other))
+
+(define-record-type (