Mercurial > repos > greg > plant_tribes_assembly_post_processor
comparison utils.py @ 11:2c2ad8af0a4e draft default tip
planemo upload for repository https://github.com/gregvonkuster/galaxy_tools/tree/master/tools/phylogenetics/plant_tribes/assembly_post_processor commit 5b19bd262023af92bc9aaa65f75b5ec81814e90f-dirty
| author | greg |
|---|---|
| date | Wed, 12 Jun 2024 19:29:25 +0000 |
| parents | 4d73965d99a2 |
| children |
comparison
equal
deleted
inserted
replaced
| 10:4d73965d99a2 | 11:2c2ad8af0a4e |
|---|---|
| 1 import os | |
| 2 import shutil | |
| 3 import subprocess | |
| 4 import sys | |
| 5 | |
| 6 FSTDERR = 'stderr.txt' | |
| 7 FSTDOUT = 'stdout.txt' | |
| 8 | |
| 9 | |
| 10 def check_execution_errors(rc, fstderr, fstdout): | |
| 11 if rc != 0: | |
| 12 fh = open(fstdout, 'rb') | |
| 13 out_msg = fh.read() | |
| 14 fh.close() | |
| 15 fh = open(fstderr, 'rb') | |
| 16 err_msg = fh.read() | |
| 17 fh.close() | |
| 18 msg = '%s\n%s\n' % (str(out_msg), str(err_msg)) | |
| 19 stop_err(msg) | |
| 20 | |
| 21 | |
| 22 def get_response_buffers(): | |
| 23 fstderr = os.path.join(os.getcwd(), FSTDERR) | |
| 24 fherr = open(fstderr, 'wb') | |
| 25 fstdout = os.path.join(os.getcwd(), FSTDOUT) | |
| 26 fhout = open(fstdout, 'wb') | |
| 27 return fstderr, fherr, fstdout, fhout | |
| 28 | |
| 29 | |
| 30 def move_directory_files(source_dir, destination_dir, copy=False, remove_source_dir=False): | |
| 31 source_directory = os.path.abspath(source_dir) | |
| 32 destination_directory = os.path.abspath(destination_dir) | |
| 33 if not os.path.isdir(destination_directory): | |
| 34 os.makedirs(destination_directory) | |
| 35 for dir_entry in os.listdir(source_directory): | |
| 36 source_entry = os.path.join(source_directory, dir_entry) | |
| 37 if copy: | |
| 38 shutil.copy(source_entry, destination_directory) | |
| 39 else: | |
| 40 shutil.move(source_entry, destination_directory) | |
| 41 if remove_source_dir: | |
| 42 os.rmdir(source_directory) | |
| 43 | |
| 44 | |
| 45 def run_command(cmd): | |
| 46 fstderr, fherr, fstdout, fhout = get_response_buffers() | |
| 47 proc = subprocess.Popen(args=cmd, stderr=fherr, stdout=fhout, shell=True) | |
| 48 rc = proc.wait() | |
| 49 # Check results. | |
| 50 fherr.close() | |
| 51 fhout.close() | |
| 52 check_execution_errors(rc, fstderr, fstdout) | |
| 53 | |
| 54 | |
| 55 def stop_err(msg): | |
| 56 sys.exit(msg) |
