Handle database of debian l10n stuff
use Debian::L10n::Db; my $l10n_db = Debian::L10n::Db->new(); $l10n_db->read("../data/unstable"); foreach ($l10n_db->list_packages()) { print "Package $_ ".$l10n_db->version($_)."\n"; }
This module is an interface to the database files used in several places of the debian localisation infrastructure, such as the webpages under \*(C`webwml/<language>/internaltional/l10n/\*(C'.
This is the constructor, it only performs some initialization. my $l10n_db = Debian::L10n::Db->new();
Read database from a given file. Returns 1 on success and otherwise 0. $l10n_db->read("foo");
Write database into file. $l10n_db->write("foo");
Returns an array with the list of package names
Reset info for a given package $l10n_db->clear_pkg("foo");
Change the status for the category specified as second argument.
If a reference to a statusline is provided, it removes the first found It should remove the right line (pkg, type, and file) from the \s-1DB\s0, and empty the package if nothing else is left.
Returns the value of the specified header
Sets the specified header to the specified value
Returns date of generation
Sets the date of generation
clean_db cleans the database by removing data for a document whose status is 'done' for more than three days.
Data about packages can be classified within scalar values (\*(C`package\*(C', \*(C`version\*(C', \*(C`section\*(C', \*(C`priority\*(C', \*(C`maintainer\*(C', \*(C`pooldir\*(C', \*(C`type\*(C', \*(C`upstream\*(C'), arrays (\*(C`errors\*(C', \*(C`catgets\*(C', \*(C`gettext\*(C'), and arrays of arrays (\*(C`nls\*(C', \*(C`po\*(C', \*(C`po4a\*(C', \*(C`templates\*(C', \*(C`podebconf\*(C', \*(C`man\*(C', \*(C`menu\*(C' and \*(C`desktop\*(C'). Each field has a method with the same name to get and set it, e.g.
$section = $l10n_db->section($pkg); $l10n_db->section($pkg, "libs");
The first line get the section associated with the package in $pkg, whereas the second set it to \*(C`libs\*(C'.
Two other methods are also defined to access those data, by prefixing field name by \*(C`has_\*(C' and \*(C`add_\*(C'. The former is used to ask whether this field is defined in database, and the latter appends values for arrays or arrays of arrays.
if ($l10n_db->has_templates($pkg)) { print "Package $pkg has Debconf templates\n"; } $l10n_db->add_po($pkg, 'po/fr.po', 'fr', '42t0f0u', 'po/adduser_3.42_po_fr.po');
Copyright (C) 2001-2004 Denis Barbier <[email protected]> Copyright (C) 2004 Martin Quinson <enough@spam>
This program is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.