--mem memory to request
--dir Directory to run the script in (default current directory)
--account, -A Account name to use
+ --join, -J join error and output streams (default)
--name, -N Name of the job
--debug, -d debugging level (Default 0)
--help, -h display this help
Account name to use
+=item B<--join, J>
+
+Whether to join STDOUT and STDERR. On by default; disable with
+C<--nojoin>.
+
=item B<--debug, -d>
Debug verbosity. (Default 0)
man => 0,
interactive => 0,
array_per_job => 1,
+ join => 1,
);
GetOptions(\%options,
'array_all_in_one_job|array-all-in-one-job!',
'ppn|processors-per-node=i',
'account|A=s',
+ 'join|J!',
'mem|memory=s',
'time|walltime=s','cputime|cput=s','host=s',
'pmem|process_mem|process-mem=s',
}
# pod2usage(join("\n",@USAGE_ERRORS)) if @USAGE_ERRORS;
-print STDERR join("\n",@USAGE_ERRORS) and exit 1 if @USAGE_ERRORS;
+if (@USAGE_ERRORS) {
+ print STDERR map {"$_\n"} @USAGE_ERRORS;
+ exit 1;
+}
# OK. Generate the options to qsub which we'll be using
my @qsub_options = generate_qsub_options(\%options,\@ARGV);
if ($options->{name}) {
push @qo,'-N',$options->{name};
} else {
- push @qo,'-N',join('_',@{$args}[0..min($#{$args},2)]);
+ push @qo,'-N',join('_',
+ map {my $a = $_; $a =~ s/[^a-zA-Z0-9]*//g; $a;}
+ @{$args}[0..min($#{$args},2)]);
+ }
+ # join error and output streams
+ if ($options->{join}) {
+ push @qo,'-j','oe';
}
return @qo;
}
my ($opt,$arg,$array) = @_;
my $script = "#!/bin/bash\n";
- my $command = join(' ',map {qq('$_')} @{$arg});
+ my $command = join(' ',map {$_ =~ /\s/?qq('$_'):$_} @{$arg});
$script .= <<EOF;
# this script was written by dqsub
EOF