1 |
#!/usr/bin/perl |
2 |
# youri-submit wrapper |
3 |
|
4 |
use strict; |
5 |
use warnings; |
6 |
use Fcntl ':mode'; |
7 |
use File::Basename; |
8 |
use MDK::Common; |
9 |
|
10 |
my $log_dir = "$ENV{HOME}/submit-logs"; |
11 |
|
12 |
my $sudo_user = $ENV{SUDO_USER} or die "should be run through sudo"; |
13 |
my @prog = ('perl', '-I/usr/share/mga-youri-submit/lib', '/usr/share/mga-youri-submit/bin/youri-submit'); |
14 |
|
15 |
my @options; |
16 |
foreach my $arg (@ARGV) { |
17 |
if ($arg =~ /^-?-(\S+)/) { |
18 |
# drop prohibited options |
19 |
if ($arg =~ /-c/ || $arg =~ /-s/) { |
20 |
print STDERR "prohibited option $arg, skipping\n"; |
21 |
next; |
22 |
} |
23 |
} |
24 |
push(@options, $arg); |
25 |
} |
26 |
|
27 |
# logging for bug #30315 -spuk, 2007-05-29 |
28 |
mkdir_p($log_dir); |
29 |
open(STDERR, "| tee -a $log_dir/$sudo_user.err >&2"); |
30 |
open(STDOUT, "| tee -a $log_dir/$sudo_user.out"); |
31 |
|
32 |
# call wrapped program |
33 |
print "Executing @prog --config /etc/youri/submit-todo.conf --define user=$sudo_user @options (sudo_user $sudo_user)\n"; |
34 |
my $err = system(@prog, "--config", "/etc/youri/submit-todo.conf", "--define", "user=$sudo_user", @options) && ($? >> 8 || 1); |
35 |
|
36 |
exit $err |