NAME¶
Debian::Rules - handy manipulation of debian/rules
SYNOPSIS¶
my $r = Debian::Rules->new('debian/rules');
my $r = Debian::Rules->new( { filename => 'debian/rules' } );
$r->is_dh7tiny && print "Using the latest and greatest\n";
$r->is_quiltified && print "quilt rules the rules\n";
# file contents changed externally
$r->parse;
$r->add_quilt;
$r->drop_quilt;
$r->write; # or undef($r);
DESCRIPTION¶
Some times, one needs to know whether
debian/rules uses the
debhelper(1) 7 tiny variant, or whether it is integrated with
quilt(1). Debian::Rules provides facilities to check this, as well as
adding/removing quilt integration.
Modified contents are written to file either vie the "write" method,
or when the object reference goes out of scope (via DESTROY).
CONSTRUCTOR¶
"new" is the standard Class::Accessor constructor, with the exception
that if only one, non-reference argument is provided, it is treated as a value
for the filename field.
If a file name is given, the constructor calls "read" to read the file
contents into memory.
One of
filename or
lines is mandatory.
FIELDS¶
- filename
- Contains the file name of the rules file.
- lines
- Reference to an array pointing to the rules file.
Initialized by "new".
METHODS¶
- parse
- Parses the rules file and stores its findings for later
use. Called automatically by is_dh7tiny and is_quiltified. The result of
the parsing is cached and subsequent calls to "is_XXX" use the
cache. To force cache refresh (for eample if the contents of the file have
been changed), call "parse" again.
- is_dh7tiny
- Returns true if the contents of the rules file seem to use
the so called tiny variant offerred by debhelper 7. Tiny rules are
detected by the presense of the following two lines:
%:
dh $@
(any options on the "dh" command line ignored).
- is_quiltified
- Returns true if the contents of the rules file indicate
that quilt(1) is used. Various styles of "quilt"
integration are detected:
- dh --with=quilt
- quilt.make with "$(QUILT_STAMPFN)" and
"unpatch" targets.
- add_quilt
- Integrates quilt(1) into the rules. For debhelper 7
tiny rules (as determined by "is_dh7tiny")
"--with=quilt" is added to every "dh" invocation. For
the more traditional variant, quilt is integrated vua quilt.make
and its "$(QUILT_STAMPFN)" and "unpatch" targets.
- drop_quilt
- Removes quilt(1) integration. Both debhelper 7
tiny style ("dh --with=quilt") and traditional
("$(QUILT_STAMPFN)" and "unpatch") approaches are
detected and removed.
- read [filename]
- Replaces the current rules content with the content of
filename. If filename is not given, uses the value of the
"filename" member.
- write [filename]
- Writes the in-memory contents filename. If not
given, uses the value of the "filename" member.
If "lines" points to an empty array, the file is removed.
COPYRIGHT & LICENSE¶
- Copyright (C) 2009, 2010 Damyan Ivanov
<dmn@debian.org>
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License version 2 as published by the Free
Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
Street, Fifth Floor, Boston, MA 02110-1301 USA.