diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2013-07-14 01:04:53 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2013-07-14 01:04:53 +0400 |
commit | 390c4aac8fe117ef4f884f932e8891f6b25c9470 (patch) | |
tree | 2927f1d6b34c3e798db73a91e9951fdb34b8f2a1 | |
parent | 97d4d87685ee1e32ba347120a91798289f492ea7 (diff) | |
download | dh-smf-390c4aac8fe117ef4f884f932e8891f6b25c9470.tar.gz |
Parse installed manifests
-rwxr-xr-x | dh_smf | 26 |
1 files changed, 24 insertions, 2 deletions
@@ -9,6 +9,7 @@ dh_smf - install SMF services into package build directories use strict; use Debian::Debhelper::Dh_Lib; use File::Find; +use XML::Simple; =head1 SYNOPSIS @@ -137,10 +138,9 @@ init( foreach my $package ( @{ $dh{DOPACKAGES} } ) { my $tmp = tmpdir($package); - print "\$tmp = $tmp\n"; + # Copy manifests and methods into package directory my $smf = pkgdir( $package, 'smf' ); - print "\$smf = $smf\n"; if ( $smf ne '' && !$dh{'ONLYSCRIPTS'} ) { my $svcdir = "$tmp/lib/svc"; if ( !-d "$svcdir" ) { @@ -148,6 +148,28 @@ foreach my $package ( @{ $dh{DOPACKAGES} } ) { } complex_doit("cp -a -v -f $smf/* $svcdir/"); } + + # Get a list of all manifests in package + my @manifests = (); + find( + { + wanted => sub { + -f $_ && /^.*\.xml\z/s && push @manifests, $File::Find::name; + }, + no_chdir => 1, + }, + "$tmp/lib/svc/manifest" + ); + + # TODO: validate XML? + + # Read all services from all manifests: + foreach my $manifest (@manifests) { + my $xml = XMLin( $manifest, + ForceArray => + [qw/instance dependency exec_method propval property_group/] ); + } + } =head1 SEE ALSO |