updated git and svn scripts
[xrzperl.git] / r-emerge
blob3acebf324cdf507712b0672cc6547e8239f20fcf
1 #!/usr/bin/perl -w
2 ###APPNAME: r-emerge
3 ###APPAUTHOR: xiaoranzzz
4 ###APPDATE: Mon Apr 7 11:17:22 2008
5 ###APPVER: 0.1
6 ###APPDESC: Invoke emerge as sudo if need,with --ask --verbose options added
7 ###APPUSAGE:
8 ###APPEXAMPLE:
9 ###APPOPTION:
10 use strict;
12 #ENV variable MUST be defined somewhere,
13 #FOR perl to search modules from,
14 #OR nothing will work
15 exit system("emerge") unless(@ARGV);
17 use lib $ENV{XR_PERL_MODULE_DIR};
20 use MyPlace::Script::Usage qw/help_required help_even_empty/;
21 exit 0 if(help_required($0,@ARGV));
23 use MyPlace::Script::Sudo qw/is_root/;
25 exit system("emerge","-av",@ARGV) if(is_root);
27 my $needroot=1;
28 my $needask=1;
30 foreach(@ARGV) {
31 if(/^--(pretend|help|search|info|fetchonly|fetch-all-uri)$/) {
32 my $optstr=$1;
33 $needask=0 if($optstr =~ /^(pretend|ask)$/);
34 $needroot=0;
35 next;
37 elsif(/^-([^-]+)$/) {
38 my $optstr=$1;
39 $needroot=0 if($optstr =~ /[pSsFf]/);
40 $needask=0 if($optstr =~ /[pa]/);
41 next;
44 my @arg;
45 push @arg,"--ask" if($needask);
46 push @arg,"--verbose";
48 if($needroot) {
49 print STDERR "Run as superuser...\n";
50 exec("sudo","emerge",@arg,@ARGV);
52 else {
53 exec("emerge",@arg,@ARGV);