#!/usr/bin/perl -w # VERSION: 1.0.5 use File::Spec; my @args = (); my $expand = 1; foreach my $arg (@ARGV) { if ($arg =~ /^-/) { # arg is a flag # push the flag onto the arg list push @args, $arg; # check if next arg should expand or not (putting every non # path arg in here, even switch types like --check-chimeras) if ( $arg eq "-t" || $arg eq "--threads" || $arg eq "-c" || $arg eq "--cluster-method" || $arg eq "-u" || $arg eq "--otu-percent" || $arg eq "-k" || $arg eq "--check-chimeras" || $arg eq "--no-check-chimeras" || $arg eq "-a" || $arg eq "--base" || $arg eq "-e" || $arg eq "--debug" || $arg eq "-v" || $arg eq "--version" || $arg eq "-h" || $arg eq "--help" ) { $expand = 0; } else { $expand = 1; } } elsif ($expand) { # an arg that is a path, expand it my $path = File::Spec->rel2abs($arg); push @args, "\'$path\'"; } else { # an arg that is not a path and not a flag push @args, "\'$arg\'"; } } my $img = "mooreryan/zetahunter"; my $zh = "/home/ZetaHunter/zeta_hunter.rb"; my $pull = "docker pull $img"; my $run = "docker run -v \"\$HOME:\$HOME\" $img ruby $zh @args"; print "\n\n\nRUNNING COMMAND: $pull\n\n\n"; system("$pull"); print "\n\n\nRUNNING COMMAND: $run\n\n\n"; exec("$run");