changeset 2:e4b6d4a53f2e draft

planemo upload for repository https://github.com/jvolkening/galaxy-tools/tree/master/tools/nanopolish commit d8cc434bd1704b2834f89b7d91370f356e3ac85a
author jdv
date Tue, 03 Oct 2017 21:23:56 -0400
parents a5db82bec597
children a1d433401bc2
files nanopolish_extract.py
diffstat 1 files changed, 13 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/nanopolish_extract.py	Fri Sep 08 18:12:54 2017 -0400
+++ b/nanopolish_extract.py	Tue Oct 03 21:23:56 2017 -0400
@@ -2,7 +2,6 @@
 
 import sys, os
 import glob
-import tarfile
 import subprocess
 import shutil
 import h5py
@@ -15,9 +14,10 @@
 
     extract_fast5(tar_file)
 
-    subprocess.call(["nanopolish",
-		"extract",
-		"--recurse",
+    subprocess.call([
+        "nanopolish",
+        "extract",
+        "--recurse",
         "--fastq",
         "--output", out_file,
         "in_dir" ])
@@ -29,8 +29,15 @@
         if not os.path.exists(in_dir):
             os.makedirs(in_dir)
 
-        tar = tarfile.open(fn, mode='r')
-        tar.extractall(path=in_dir)
+        # python's tarfile interface does not sanitize file paths within
+        # tarballs, which can be a big security risk. GNU tar does sanitize by
+        # default, so it's easier/safer here just to call the system tar
+        subprocess.call([
+            "tar",
+            "-xf",
+            fn,
+            "-C",
+            "in_dir"])
 
         files = glob.glob(
             os.path.join(in_dir, "**", "*.fast5"),