9 |
use JSON; |
use JSON; |
10 |
|
|
11 |
my $remote = 'ssh mjesec'; |
my $remote = 'ssh mjesec'; |
12 |
$remote = ''; # FIXME |
#$remote = ''; # FIXME |
13 |
|
|
14 |
sub exhibit { |
sub exhibit { |
15 |
my ($self, $c) = @_; |
my ($self, $c) = @_; |
52 |
my @lines = split(/\n/, $df); |
my @lines = split(/\n/, $df); |
53 |
my @header = map { lc($_) } split(/\s+/, shift @lines, 6); |
my @header = map { lc($_) } split(/\s+/, shift @lines, 6); |
54 |
|
|
55 |
my @data; |
my @items; |
56 |
my $number; |
my $number; |
57 |
|
|
58 |
while ( @lines ) { |
while ( @lines ) { |
59 |
my $data; |
my $item; |
60 |
my @v = split(/\s+/, shift @lines); |
my @v = split(/\s+/, shift @lines); |
61 |
if ( $#v == 0 ) { |
if ( $#v == 0 ) { |
62 |
push @v, split(/\s+/, shift @lines); |
my $cont = shift @lines; |
63 |
|
$cont =~ s/^\s+//; |
64 |
|
push @v, split(/\s+/, $cont); |
65 |
} |
} |
66 |
foreach my $i ( 0 .. $#header ) { |
foreach my $i ( 0 .. $#header ) { |
67 |
my $name = lc( $header[$i] ); |
my $name = lc( $header[$i] ); |
70 |
$name =~ s/_+$//; |
$name =~ s/_+$//; |
71 |
my $val = $v[$i]; |
my $val = $v[$i]; |
72 |
$number->{$name}++ if $val =~ s/^(\d+)%?$/$1/; |
$number->{$name}++ if $val =~ s/^(\d+)%?$/$1/; |
73 |
$data->{ $name } = $val; |
$item->{ $name } = $val; |
74 |
|
|
75 |
$data->{ label } = $val if $name =~ m/mounted/; |
$item->{ label } = $val if $name =~ m/mounted/; |
76 |
} |
} |
77 |
warn "left ",dump(@v) if @v; |
warn "left ",dump(@v) if @v; |
78 |
push @data, $data; |
push @items, $item; |
79 |
} |
} |
80 |
|
|
81 |
warn "# data = ",dump( @data ); |
warn "# items = ",dump( @items ); |
82 |
warn "# number [$#header] = ",dump( $number ); |
warn "# number [$#items] = ",dump( $number ); |
83 |
|
|
84 |
$self->json( $c->res, { |
$self->json( $c->res, { |
85 |
items => [ @data ], |
items => [ @items ], |
86 |
properties => { |
properties => { |
87 |
map { $_ => { valueType => 'number' } } |
map { $_ => { valueType => 'number' } } |
88 |
grep { $number->{$_} == $#header + 1 } |
grep { $number->{$_} == $#items + 1 } |
89 |
keys %$number |
keys %$number |
90 |
} |
} |
91 |
} ); |
} ); |