blob: 03973441945819da34bbb79f849044843126f41c [file] [log] [blame]
#!/usr/bin/perl
my %opts;
my @args;
{
my $opts = 1;
foreach (@ARGV) {
if ($opts) {
$opts = 0 if /^--$/;
$opts{$1} = $2 if /^-([a-zA-Z])(.+)$/;
} else {
push (@args, $_);
}
}
}
my $mode = $opts{'M'};
if ($mode eq 'redirect') {
my $stdout = $opts{'o'} || die "No -o";
my $stderr = $opts{'O'} || die "No -O";
open (STDOUT, ">$stdout") || die "Could not redirect STDOUT to $stdout: $!";
open (STDERR, ">$stderr") || die "Could not redirect STDERR to $stderr: $!";
select STDERR; $| = 1;
select STDOUT; $| = 1;
exec { $args[0] } @args;
die "Could not exec " . join(' ', @args) . ": $!";
}
else {
die "Unknown mode: $mode\n";
}