Mercurial > repos > simon-gladman > snippy
diff snippy_core_wrapper.pl @ 6:15f5a3074012 draft
Added snippy core and static binaries for linux and mac.
author | simon-gladman |
---|---|
date | Thu, 09 Jun 2016 20:15:42 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/snippy_core_wrapper.pl Thu Jun 09 20:15:42 2016 -0400 @@ -0,0 +1,80 @@ +#!/usr/bin/env perl + +#-------------------------------------- +# +# snippy_core_wrapper.pl +# +# This is an intermediary script between snippy-core.xml and snippy-core +# It: +# - Copys the supplied zipped snippy output files to the working dir +# - Untars them to their datafile name +# - Builds the snippy-core command and captures the stdout and stderr to files +# - Runs the snippy-core command +# +#-------------------------------------- + +use warnings; +use strict; +use File::Copy; +use File::Basename; + +my(@Options, $indirs, $mincov, $noref); +setOptions(); + +my @list_of_dirs = split /\s+/, $indirs; + +#The list of final directories to be passed to snippy-core will be stored here. +my @snippy_outs; + +foreach my $d (@list_of_dirs){ + #print STDERR "$d\n"; + my $bn = basename($d); + my ($name, $dir, $ext) = fileparse($d, '\..*'); + copy($d, $bn); + #print STDERR "$d, $bn, $name, $dir, $ext\n"; + `tar -xf $bn`; + move("./out", "./$name"); + unlink($bn); + push @snippy_outs, $name; +} + +my $commandline = "snippy-core "; + +$commandline .= "--noref " if $noref; +$commandline .= "--mincov $mincov " if $mincov; +$commandline .= join(" ", @snippy_outs); +print STDERR "snippy-core commandline: $commandline\n"; + +my $ok = system($commandline); + +#---------------------------------------------------------------------- +# Option setting routines + +sub setOptions { + use Getopt::Long; + + @Options = ( + {OPT=>"help", VAR=>\&usage, DESC=>"This help"}, + {OPT=>"mincov=i", VAR=>\$mincov, DEFAULT=>'10.0', DESC=>"The minimum coverage to consider."}, + {OPT=>"noref!", VAR=>\$noref, DEFAULT=>0, DESC=>"Don't include the reference in the alignment."}, + {OPT=>"indirs=s", VAR=>\$indirs, DEFAULT=>"", DESC=>"A whitespace delimited list of the snippy output zipped dirs."}, + ); + + &GetOptions(map {$_->{OPT}, $_->{VAR}} @Options) || usage(); + + # Now setup default values. + foreach (@Options) { + if (defined($_->{DEFAULT}) && !defined(${$_->{VAR}})) { + ${$_->{VAR}} = $_->{DEFAULT}; + } + } +} + +sub usage { + print "Usage: $0 [options] -i inputfile > ... \n"; + foreach (@Options) { + printf " --%-13s %s%s.\n",$_->{OPT},$_->{DESC}, + defined($_->{DEFAULT}) ? " (default '$_->{DEFAULT}')" : ""; + } + exit(1); +}