]> git.proxmox.com Git - pve-manager.git/blob - lib/PVE.old/SourceFilter.pm
imported from svn 'pve-manager/pve2'
[pve-manager.git] / lib / PVE.old / SourceFilter.pm
1 package PVE::SourceFilter;
2
3 use Filter::Util::Call;
4 use Data::Dumper;
5
6 $Data::Dumper::Indent = 0;
7
8 sub import
9 {
10 my($type, @arguments) = @_;
11
12 my $stat = {};
13 filter_add ($stat) ;
14 }
15
16 sub filter
17 {
18 my($self) = @_ ;
19 my($status) ;
20
21 $status = filter_read();
22 if ($status <= 0) {
23 return $status;
24 }
25
26 if (m/^package\s+(\S+);/) {
27 foreach my $k (keys %$self) {delete $self->{$k}; }
28 $self->{packagename} = $1;
29 }
30
31 if (m/^\s*\#\#FILTER_DATA\#\#/) {
32 my $dtxt = Data::Dumper->Dump ([{%$self}], [qw(stats)]);
33 $_ = "sub filter_data { my $dtxt; die \"PVE::SourceFilter - internal error\" if \$stats->{packagename} ne __PACKAGE__; return \$stats; }\n";
34 }
35
36 if (m/^sub\s+(\w+)\s.*\#\#SOAP_EXPORT\#\#/) {
37 $self->{soap_exports}->{$1} = 1;
38 }
39
40 $self->{lines}++;
41
42 $status ;
43 }
44
45 1;