diff options
-rw-r--r-- | Changes | 2 | ||||
-rw-r--r-- | MANIFEST | 1 | ||||
-rw-r--r-- | Makefile.PL | 1 | ||||
-rwxr-xr-x | scripts/mana | 47 |
4 files changed, 51 insertions, 0 deletions
@@ -1,5 +1,7 @@ Revision history for AdminPanel-Shared 1.0.0-3 + - added mana script to run pkexec into script for any tools + and as a single entry for desktop file - dragora-urpm-sources.pl crashed updating media, if no media are configured - dragora-urpm-sources.pl crashed if no media are configured @@ -66,6 +66,7 @@ modules/rpmdragora/dragora-urpm-sources.pl modules/rpmdragora/rpmdragora modules/test.cpp README.md +scripts/mana scripts/manaadduser scripts/manaclock scripts/manahost diff --git a/Makefile.PL b/Makefile.PL index 9f0b413..cd92bfd 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -61,6 +61,7 @@ WriteMakefile( "autodie" => 2.20, }, EXE_FILES => [ qw( scripts/mpan.pl + scripts/mana scripts/manaadduser scripts/manaclock scripts/manadm 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); +} |