diff options
Diffstat (limited to 'scripts/mana')
-rwxr-xr-x | scripts/mana | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/scripts/mana b/scripts/mana new file mode 100755 index 00000000..ee3da644 --- /dev/null +++ b/scripts/mana @@ -0,0 +1,48 @@ +#!/usr/bin/perl + +use AdminPanel::Privileges; + +use yui; + +# TODO from configuration file? +my %modules = ( + log => '/usr/bin/manalog', + user => '/usr/bin/manauser', + service => '/usr/bin/manaservice', + clock => '/usr/bin/manaclock', + host => '/usr/bin/manahost', + pan => '/usr/bin/mpan.pl', + proxy => '/usr/bin/manaproxy', + +); + +my $cmdline = new yui::YCommandLine; + +usage() if($cmdline->find("--help") > 0 || $cmdline->find("-h") > 0); +usage() if scalar(@ARGV) < 1; + +my $cmd = $ARGV[0]; + +die "Command ". $cmd . " not found!\n" if !defined($modules{$cmd}); + +my $mod = $modules{$cmd}; +shift(@ARGV); + +if(is_root_capability_required()) { + system("/usr/bin/pkexec", $mod, @ARGV); +} else { + system($mod, @ARGV); +} + +sub usage { + print "\n"; + print "Usage mana --help | -h print this help\n"; + print "Usage mana <command> [args...]\n\n"; + print "valid <commands>:\n\t"; +# TODO better presentation + while ( my ($key, $value) = each(%modules) ) { + print " " . $key; + } + print "\n"; + exit(0); +} |