From c9c2fc44154d2a79b629647401c93cdc23591cae Mon Sep 17 00:00:00 2001
From: Ruben Vorderman <r.h.p.vorderman@lumc.nl>
Date: Mon, 23 Jul 2018 13:20:33 +0200
Subject: [PATCH] common to 1.0

---
 common.wdl | 90 ++++++++++++++++++++++++++----------------------------
 1 file changed, 43 insertions(+), 47 deletions(-)

diff --git a/common.wdl b/common.wdl
index 863421d..21b84b6 100644
--- a/common.wdl
+++ b/common.wdl
@@ -1,10 +1,13 @@
-task AppendToStringArray {
-    Array[String] array
-    String string
+version 1.0
 
+task AppendToStringArray {
+    input {
+        Array[String] array
+        String string
+    }
     command {
-        echo "${sep='\n' array}
-        ${string}"
+        echo "~{sep='\n' array}
+        ~{string}"
     }
 
     output {
@@ -18,27 +21,29 @@ task AppendToStringArray {
 
 # This task will fail if the MD5sum doesn't match the file.
 task CheckFileMD5 {
-    File file
-    String MD5sum
-
+    input {
+        File file
+        String MD5sum
+    }
     command {
         set -e -o pipefail
-        MD5SUM=$(md5sum ${file} | cut -d ' ' -f 1)
-        [ $MD5SUM = ${MD5sum} ]
+        MD5SUM=$(md5sum ~{file} | cut -d ' ' -f 1)
+        [ $MD5SUM = ~{MD5sum} ]
     }
 }
 
 task ConcatenateTextFiles {
-    Array[File] fileList
-    String combinedFilePath
-    Boolean? unzip = false
-    Boolean? zip = false
-
+    input {
+        Array[File] fileList
+        String combinedFilePath
+        Boolean? unzip = false
+        Boolean? zip = false
+    }
     command {
         set -e -o pipefail
-        ${"mkdir -p $(dirname " + combinedFilePath + ")"}
-        ${true='zcat' false= 'cat' unzip} ${sep=' ' fileList} \
-        ${true="| gzip -c" false="" zip} > ${combinedFilePath}
+        ~{"mkdir -p $(dirname " + combinedFilePath + ")"}
+        ~{true='zcat' false= 'cat' unzip} ~{sep=' ' fileList} \
+        ~{true="| gzip -c" false="" zip} > ~{combinedFilePath}
     }
 
     output {
@@ -53,11 +58,12 @@ task ConcatenateTextFiles {
 task CreateLink {
     # Making this of type File will create a link to the copy of the file in the execution
     # folder, instead of the actual file.
-    String inputFile
-    String outputPath
-
+    input {
+        String inputFile
+        String outputPath
+    }
     command {
-        ln -sf ${inputFile} ${outputPath}
+        ln -sf ~{inputFile} ~{outputPath}
     }
 
     output {
@@ -65,29 +71,17 @@ task CreateLink {
     }
 }
 
-# inspired by https://gatkforums.broadinstitute.org/wdl/discussion/9616/is-there-a-way-to-flatten-arrays
-task FlattenStringArray {
-    Array[Array[String]] arrayList
-
-    command {
-        for line in $(echo ${sep=', ' arrayList}) ; \
-        do echo $line | tr -d '"[],' ; done
-    }
-
-    output {
-        Array[String] flattenedArray = read_lines(stdout())
-    }
-
-    runtime {
-        memory: 1
-    }
-}
+# DEPRECATED. USE BUILT-IN FLATTEN FUNCTION
+# task FlattenStringArray {}
+# Commented out to let pipelines that depend on this fail.
 
 task MapMd5 {
-    Map[String,String] map
+    input {
+        Map[String,String] map
+    }
 
     command {
-        cat ${write_map(map)} | md5sum - | sed -e 's/  -//'
+        cat ~{write_map(map)} | md5sum - | sed -e 's/  -//'
     }
 
     output {
@@ -101,10 +95,11 @@ task MapMd5 {
 
 
 task ObjectMd5 {
-    Object the_object
-
+    input {
+        Object the_object
+    }
     command {
-        cat ${write_object(the_object)} |  md5sum - | sed -e 's/  -//'
+        cat ~{write_object(the_object)} |  md5sum - | sed -e 's/  -//'
     }
 
     output {
@@ -117,11 +112,12 @@ task ObjectMd5 {
 }
 
 task StringArrayMd5 {
-    Array[String] stringArray
-
+    input {
+        Array[String] stringArray
+    }
     command {
         set -eu -o pipefail
-        echo ${sep=',' stringArray} | md5sum - | sed -e 's/  -//'
+        echo ~{sep=',' stringArray} | md5sum - | sed -e 's/  -//'
     }
 
     output {
-- 
GitLab