summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ccwl/ccwl.scm19
1 files changed, 19 insertions, 0 deletions
diff --git a/ccwl/ccwl.scm b/ccwl/ccwl.scm
index 25a9950..28ade9c 100644
--- a/ccwl/ccwl.scm
+++ b/ccwl/ccwl.scm
@@ -274,6 +274,25 @@
(define (workflow-steps x)
(syntax-case x ()
+(define-immutable-record-type <key>
+ (make-key name step)
+ key?
+ (name key-name)
+ (step key-step))
+
+(define* (key name #:optional step)
+ "Build and return a <key> object."
+ (make-key name step))
+
+;; TODO: Add docstring.
+(define (cwl-key-address key)
+ (if (key-step key)
+ ;; Input/output of particular step
+ (string-append (symbol->string (key-step key))
+ "/" (symbol->string (key-name key)))
+ ;; Global input/output
+ (symbol->string (key-name key))))
+
((command (step-id) args ...)
(cons #`(invoke-command
step-id command