Add option to copy source files for a submission.
authorDiane Trout <diane@ghic.org>
Fri, 28 Jun 2013 18:36:31 +0000 (11:36 -0700)
committerDiane Trout <diane@ghic.org>
Fri, 28 Jun 2013 18:36:31 +0000 (11:36 -0700)
Sometimes it may be worth while to keep a copy of the
files being submitted.

encode_submission/trackhub.py
htsworkflow/submission/results.py

index 4ee206131728d1eaba9bc3661366c09e4eee8504..41f76d14f6d552f5a25eb0ee1bc74f9db32e18c6 100644 (file)
@@ -77,8 +77,11 @@ def main(cmdline=None):
         else:
             logger.warn("File %s doesn't exist.", a)
 
-    if opts.make_tree_from is not None:
-        results.make_tree_from(opts.make_tree_from)
+    if opts.make_link_tree_from is not None:
+        results.make_tree_from(opts.make_tree_from, link=True)
+
+    if opts.copy_tree_from is not None:
+        results.make_tree_from(opts.make_tree_from, link=False)
 
     if opts.fastq:
         logger.info("Building fastq extraction scripts")
@@ -121,9 +124,12 @@ def make_parser():
     parser.add_option_group(model)
     # commands
     commands = OptionGroup(parser, 'commands')
-    commands.add_option('--make-tree-from',
+    commands.add_option('--make-link-tree-from',
                       help="create directories & link data files",
                       default=None)
+    commands.add_option('--copy-tree-from',
+                      help="create directories & copy data files",
+                      default=None)
     commands.add_option('--fastq', default=False, action="store_true",
                         help="generate scripts for making fastq files")
     commands.add_option('--scan-submission', default=False, action="store_true",
index 36c2c78e7b2b0aac0613217ec2171f84a3c727ba..50077523aca3970a517973adbd69f119f4f17e3d 100644 (file)
@@ -45,7 +45,7 @@ class ResultMap(MutableMapping):
                 lib_path = os.path.join(basepath, lib_path)
             self[lib_id] = lib_path
 
-    def make_tree_from(self, source_path, destpath = None):
+    def make_tree_from(self, source_path, destpath = None, link=True):
         """Create a tree using data files from source path.
         """
         if destpath is None:
@@ -76,7 +76,10 @@ class ResultMap(MutableMapping):
                     raise IOError(
                         "{0} does not exist".format(source_pathname))
                 if not os.path.exists(target_pathname):
-                    os.symlink(source_pathname, target_pathname)
+                    if link:
+                        os.symlink(source_pathname, target_pathname)
+                    else:
+                        os.copy(source_pathname, target_pathname)
                     LOGGER.info(
                         'LINK {0} to {1}'.format(source_pathname,
                                                  target_pathname))