10165: Handle copying complete collection contents into subdirectory.
[arvados.git] / sdk / cwl / arvados_cwl / __init__.py
index 21d30191692814b62005fe9804ff2de92d389541..5bdffd5048a4625a8ae240d2e16684f0c6de3384 100644 (file)
@@ -188,18 +188,16 @@ class ArvCwlRunner(object):
                 srccollections[srccollection] = arvados.collection.CollectionReader(srccollection)
             reader = srccollections[srccollection]
             try:
-                final.copy("/".join(sp[1:]), v.target, source_collection=reader, overwrite=False)
+                srcpath = "/".join(sp[1:]) if len(sp) > 1 else "."
+                final.copy(srcpath, v.target, source_collection=reader, overwrite=False)
             except IOError as e:
                 logger.warn("While preparing output collection: %s", e)
 
         def rewrite(fileobj):
             fileobj["location"] = generatemapper.mapper(fileobj["location"]).target
-            if "basename" in fileobj:
-                del fileobj["basename"]
-            if "size" in fileobj:
-                del fileobj["size"]
-            if "listing" in fileobj:
-                del fileobj["listing"]
+            for k in ("basename", "size", "listing"):
+                if k in fileobj:
+                    del fileobj[k]
 
         adjustDirObjs(outputObj, rewrite)
         adjustFileObjs(outputObj, rewrite)