diff options
author | joey <joey> | 2003-06-12 14:04:11 +0000 |
---|---|---|
committer | joey <joey> | 2003-06-12 14:04:11 +0000 |
commit | c6737cf60bbb2079a8e6b3de48b1e518597dafb1 (patch) | |
tree | 1c0ea5d82068b3ecbafcd2d873e582eecfbec0d8 /dh_scrollkeeper | |
parent | ace87ed101089bbbaddce7274d76f02652e5b0a6 (diff) | |
download | debhelper-c6737cf60bbb2079a8e6b3de48b1e518597dafb1.tar.gz |
r589: * Added dh_scrollkeeper, by Ross Burton.
* Added dh_userlocal, by Andrew Stribblehill. (With root.root special case
added by me.)
* Added dh_installlogcheck, by Jon Middleton. Closes: #184021
* Add aph's name to copyright file too.
Diffstat (limited to 'dh_scrollkeeper')
-rwxr-xr-x | dh_scrollkeeper | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/dh_scrollkeeper b/dh_scrollkeeper new file mode 100755 index 00000000..fb459cb3 --- /dev/null +++ b/dh_scrollkeeper @@ -0,0 +1,108 @@ +#!/usr/bin/perl -w + +=head1 NAME + +dh_scrollkeeper - generate ScrollKeeper registration scripts + +=cut + +use strict; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B<dh_scrollkeeper> [S<I<debhelper options>>] [B<-n>] [S<I<directory>>] + +=head1 DESCRIPTION + +B<dh_scrollkeeper> is a debhelper program that handles correctly +registering OMF files that it finds in package build trees with +ScrollKeeper. + +This command automatically adds maintainer script snippets for registering +and unregistering files with ScrollKeeper (unless B<-n> is used). A +dependency on scrollkeeper will be added to C<${misc:Depends}>, so be sure +your package uses that variable in F<debian/control>. See +L<dh_installdeb(1)> for an explantion of Debhelper maintainer script +snippets. + +It will also change any DTD declarations in the OMF and DocBook files +to refer to local files instead of remote URLs. This change does not +modify the source files, but the files in the package build tree. + +=head1 OPTIONS + +=over 4 + +=item B<-n>, B<--noscripts> + +Do not modify F<postinst>/F<postrm> scripts. + +=back + +=head1 NOTES + +Note that this command is not idempotent. "dh_clean -k" should be +called between invocations of this command. Otherwise, it may cause +multiple instances of the same text to be added to maintainer scripts. + +=cut + +init(); + +# This is a list of paths where DocBook files might be stored. +my @xml_paths = ( + 'usr/share/gnome/help' # GNOME Help +); + +# Append the remaining command line arguments +push @xml_paths, @ARGV if @ARGV; + +foreach my $package (@{$dh{DOPACKAGES}}) { + my $tmp=tmpdir($package); + + # Only run if there have been OMF files installed + if (-d "$tmp/usr/share/omf") { + # Get a list of the OMF files + my @omf_files = `find $tmp/usr/share/omf -type f -printf '%p\n'`; + if (@omf_files) { + # Change any remote DTDs into local DTDs. We only + # look at the first 10 lines to avoid changing any + # of the content. First, the OMF files + foreach my $file (@omf_files) { + chomp $file; + doit("perl", "-i", "-pe", "'s,http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd,/usr/share/xml/scrollkeeper/dtds/scrollkeeper-omf.dtd, if \$. < 10'", $file); + } + # I could be cunning and parse the OMF for the DocBook + # files. That is far too much effort. Find to the + # rescue! Look for .xml files in the list of + # directories we think they might be in. + foreach my $xmlpath (@xml_paths) { + foreach my $file (`find $tmp/$xmlpath -type f -name \*.xml -printf '%p\n'`) { + chomp $file; + doit("perl", "-i", "-pe", "'s,http://www.oasis-open.org/docbook/xml/([^/]+)/docbookx.dtd,/usr/share/sgml/docbook/dtd/xml/\\1/docbookx.dtd, if \$. < 10'", $file); + } + } + + if (! $dh{NOSCRIPTS}) { + autoscript($package,"postinst","postinst-scrollkeeper"); + autoscript($package,"postrm","postrm-scrollkeeper"); + } + # The scripts use scrollkeeper-update with the -q + # option, so we require 0.3.8+. + addsubstvar($package, "misc:Depends", "scrollkeeper", ">= 0.3.8"); + } + } +} + +=head1 SEE ALSO + +L<debhelper> + +This program is a part of debhelper. + +=head1 AUTHOR + +Ross Burton <ross@burtonini.com> + +=cut |