Line | |
---|
1 | #!/bin/env perl |
---|
2 | |
---|
3 | use Sophie::Cli; |
---|
4 | require RPC::XML; |
---|
5 | require RPC::XML::Client; |
---|
6 | use Term::ReadKey; |
---|
7 | use Getopt::Long; |
---|
8 | |
---|
9 | GetOptions( |
---|
10 | 's=s' => \my $server, |
---|
11 | ); |
---|
12 | |
---|
13 | ReadMode('noecho'); |
---|
14 | print "Enter password: "; |
---|
15 | my $password = ReadLine(0); |
---|
16 | ReadMode 0; |
---|
17 | print "\n"; |
---|
18 | chomp($password); |
---|
19 | |
---|
20 | require Data::Dumper; |
---|
21 | my $xmlcli = RPC::XML::Client->new($server || 'http://sophie.zarb.org/rpc'); |
---|
22 | |
---|
23 | my $res = $xmlcli->send_request('login', 'admin', $password); |
---|
24 | if (ref $res && !$res->is_fault) { |
---|
25 | $xmlcli->request->header('cookie', $$res); |
---|
26 | } else { |
---|
27 | die "Can't login"; |
---|
28 | } |
---|
29 | |
---|
30 | if (@ARGV) { |
---|
31 | my @string; |
---|
32 | foreach my $file (@ARGV) { |
---|
33 | warn "Reading $file\n"; |
---|
34 | open($handle, '<', $file) || die "can't open file $!"; |
---|
35 | push(@string, join('', <$handle>)); |
---|
36 | close($handle); |
---|
37 | } |
---|
38 | |
---|
39 | foreach my $string (@string) { |
---|
40 | my $res = $xmlcli->send_request('admin.load_distrib', $string); |
---|
41 | print $res->value . "\n"; |
---|
42 | } |
---|
43 | } else { |
---|
44 | my $string = join('', <STDIN>); |
---|
45 | my $res = $xmlcli->send_request('admin.load_distrib', $string); |
---|
46 | print $res->value . "\n"; |
---|
47 | } |
---|
Note: See
TracBrowser
for help on using the repository browser.