aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/mana
blob: b4bc38bdc7676c4016ed4244700a1339d6281568 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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);
}