From 390c4aac8fe117ef4f884f932e8891f6b25c9470 Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Sun, 14 Jul 2013 01:04:53 +0400 Subject: Parse installed manifests --- dh_smf | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/dh_smf b/dh_smf index f2a0067..db6d183 100755 --- a/dh_smf +++ b/dh_smf @@ -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 -- cgit v1.2.3