Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

parse and manipulate debian/control in a controlable way

branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

README
NAME
    Parse::Deb::Control - parse and manipulate debian/control in a
    controlable way

SYNOPSIS
    Print out all "Package:" values lines

        use Parse::Deb::Control;

        my $parser = Parse::Deb::Control->new($control_txt);
        my $parser = Parse::Deb::Control->new(['path', 'to', 'debian', 'control']);
        my $parser = Parse::Deb::Control->new($fh);
    
        foreach my $para ($parser->get_paras('Package')) {
            print $para->{'Package'}, "\n";
        }

    or

        foreach my $entry ($parser->get_keys('Package')) {
            print ${$entry->{'value'}}, "\n";
        }

    Modify "Maintainer:"

        my $mantainer = 'someone@new';

        my $parser = Parse::Deb::Control->new($control_txt);
        foreach my $para ($parser->get_paras(qw{ Maintainer })) {
            $para->{'Maintainer'} =~ s/^ (\s*) (\S.*) $/ $maintainer\n/xms;
        }

    or

        my $parser = Parse::Deb::Control->new($control_txt);
        foreach my $src_pkg ($parser->get_keys(qw{ Maintainer })) {
            ${$src_pkg->{'value'}} =~ s/^ (\s*) (\S.*) $/ $maintainer\n/xms;
        }

    and

        print $parser->control;

DESCRIPTION
    This modules helps to automate changes in debian/control file. It tries
    hard to preserve the original structure so that diff on input and output
    can be made and it will be clear what was changed. There are 2 checks.
    First when original debian/control file processed it is generated back
    and compared to the original. The program dies if those two doesn't
    match. After making changes and creating new file. The result is parsed
    again and the same check is applied to make sure the file will be still
    parseable.

    See also Parse::DebControl for alternative.

PROPERTIES
        _control_src
        structure

METHODS
  new()
    Object constructor. Accepts anythign IO::Any->read() does to get
    debian/control from.

  content()
    Returns content of the debian/control. The return value is an array ref
    holding hashes representing control file paragraphs.

  control
    Returns text representation of a debian/control constructed from
    `<$self-'content>> and `<$self-'structure>>.

  get_keys
    Parameters are the requested keys from debian/control. Returns array of
    key/values of matching keys. Ex.

        {
            'key'   => 'Package',
            'value' => \"perl",
            'para'  => { ... one item from $self->content array ... },
        }

    Note that value is a pointer to scalar value so that it can be easyly
    modified if needed.

  get_paras
    Returns a paragraphs that has key(s) passed as argument.

AUTHOR
    Jozef Kutej, `<jkutej at cpan.org>'

BUGS
    Please report any bugs or feature requests to `bug-parse-deb-control at
    rt.cpan.org', or through the web interface at
    http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Parse-Deb-Control. I will
    be notified, and then you'll automatically be notified of progress on
    your bug as I make changes.

SUPPORT
    You can find documentation for this module with the perldoc command.

        perldoc Parse::Deb::Control

    You can also look for information at:

    * RT: CPAN's request tracker
        http://rt.cpan.org/NoAuth/Bugs.html?Dist=Parse-Deb-Control

    * AnnoCPAN: Annotated CPAN documentation
        http://annocpan.org/dist/Parse-Deb-Control

    * CPAN Ratings
        http://cpanratings.perl.org/d/Parse-Deb-Control

    * Search CPAN
        http://search.cpan.org/dist/Parse-Deb-Control

ACKNOWLEDGEMENTS
COPYRIGHT & LICENSE
    Copyright 2009 Jozef Kutej, all rights reserved.

    This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

Something went wrong with that request. Please try again.