aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/mana
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/mana')
-rwxr-xr-xscripts/mana47
1 files changed, 47 insertions, 0 deletions
diff --git a/scripts/mana b/scripts/mana
new file mode 100755
index 0000000..b4bc38b
--- /dev/null
+++ b/scripts/mana
@@ -0,0 +1,47 @@
+#!/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',
+ 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);
+}