SYNOPSIS

 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";
 }

DESCRIPTION

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'.

METHODS

new

This is the constructor, it only performs some initialization. my $l10n_db = Debian::L10n::Db->new();

read

Read database from a given file. Returns 1 on success and otherwise 0. $l10n_db->read("foo");

write

Write database into file. $l10n_db->write("foo");

list_packages

Returns an array with the list of package names

clear_pkg

Reset info for a given package $l10n_db->clear_pkg("foo");

set_status

Change the status for the category specified as second argument.

del_status

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.

get_header

Returns the value of the specified header

set_header

Sets the specified header to the specified value

get_date

Returns date of generation

set_date

Sets the date of generation

clean-db

clean_db cleans the database by removing data for a document whose status is 'done' for more than three days.

\s-1DATA\s0 \s-1MANIPULATION\s0

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');

AUTHOR

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.