DPKG::Parse::Entry - Parse a Package style entry
use DPKG::Parse::Entry;
my $data = <<EOH;
Package: kernel-image-2.6.12.2
Source: kernel-source-2.6.12.2
Version: wrk01
Priority: optional
Section: base
Maintainer: Jamie Heilman <jamie@marchex.com>
Depends: coreutils | fileutils (>= 4.0)
Suggests: lilo (>= 19.1) | grub, fdutils, kernel-doc-2.6.12.2 | kernel-source-2.6.12.2
Provides: kernel-image, kernel-image-2.6
Architecture: i386
Filename: packages/./kernel-image-2.6.12.2_wrk01_i386.deb
Size: 4293154
Installed-Size: 10312
MD5sum: 2acf846b127b71a1fa1143214b2b85a9
Description: Linux kernel binary image for version 2.6.12.2.
EOH
my $entry = DPKG::Parse::Entry->new('data' => $data);
print $entry->package . " " . $entry->version . "\n";
$entry->package("kernel-foobar");
the DPKG::Parse::Entry manpage parses a dpkg "Package" file entry, creating a new the DPKG::Parse::Entry manpage instance for it. You submit the contents, beginning with a "Package:" line, as the 'data' argument to new. After that, all the data is populated as lowercased instance methods. For example, if we used the above to create an $entry object, we would have:
$entry->package == "kernel-image-2.6.12.2" $entry->size == 4293154 $entry->md5sum == 2acf846b127b71a1fa1143214b2b85a9
the DPKG::Parse::Entry manpage will skip any attribute it does not know about. You can see what it has skipped by passing a true value to the 'debug' option to 'new()'.
It should know all the attributes present in a Packages, available, and status file.
See the DPKG::Parse::Status manpage, the DPKG::Parse::Available manpage, and the DPKG::Parse::Packages manpage for more information on how to easily generate DPKG::Parse::Entry objects.
The following accessor methods correspond directly to the values found in the parsed Package block, with one exception: "-" characters are replaced with "_". So, "build-essential" becomes "build_essential".
The accessors are:
architecture
bugs
build_essential
conflicts
config_version
conffiles
depends
description
enhances
essential
filename
installed_size
maintainer
md5sum
origin
package
priority
provides
pre_depends
recommends
replaces
size
source
section
suggests
status
task
tag
url
version
Creates a new the DPKG::Parse::Entry manpage object. 'data' should be a scalar that contains the text of a dpkg-style Package entry. If the 'debug' flag is set, we will Carp about entries we don't have accessors for.
Does the actual parsing of the Package block given to new(). Probably
should only be called once per object.