=pod

=for comment
DO NOT EDIT. This Pod was generated by Swim.
See http://github.com/ingydotnet/swim-pm#readme

=encoding utf8

=head1 NAME

Module::Manifest::Skip - MANIFEST.SKIP Manangement for Modules

=for html
<a href="https://travis-ci.org/ingydotnet/module-manifest-skip-pm"><img src="https://travis-ci.org/ingydotnet/module-manifest-skip-pm.png" alt="module-manifest-skip-pm"></a>
<a href="https://coveralls.io/r/ingydotnet/module-manifest-skip-pm?branch=master"><img src="https://coveralls.io/repos/ingydotnet/module-manifest-skip-pm/badge.png" alt="module-manifest-skip-pm"></a>

=head1 SYNOPSIS

From the command line:

    > perl -MModule::Manifest::Skip=create

From Perl:

    use Module::Manifest::Skip;
    use IO::All;

    my $mms = Module::Manifest::Skip->new;
    # optional add and removes:
    $mms->add('^foo-bar$');
    $mms->remove('^foo$');
    $mms->remove(qr/\Q\bfoo\b/);
    io('MANIFEST.SKIP')->print($mms->text);

=head1 DESCRIPTION

B<NOTE:> This module is mostly intended for module packaging frameworks to
share a common, up-to-date C<MANIFEST.SKIP> base. For example,
Module::Install::ManifestSkip, uses this module to get the actual SKIP
content. However this module may be useful for any module author.

CPAN module authors use a C<MANIFEST.SKIP> file to exclude certain well known
files from getting put into a generated C<MANIFEST> file, which would cause
them to go into the final distribution package.

The packaging tools try to automatically skip things for you, but if you
add one of your own entries, you have to add all the common ones yourself.
This module attempts to make all of this boring process as simple and
reliable as possible.

Module::Manifest::Skip can create or update a MANIFEST.SKIP file for you. You
can add your own entries, and it will leave them alone. You can even tell it
to B<not> skip certain entries that it normally skips, although this is
rarely needed.

=head1 USAGE

Usually this module is called by other packaging modules. If you want this to
be used by Module::Install, then you would put this:

    manifest_skip 'clean';

in your C<Makefile.PL>, and everything would be taken care of for you.

If you want to simply create a C<MANIFEST.SKIP> file from the command line,
this handy syntax exists:

    > perl -MModule::Manifest::Skip=create

=head1 BEHAVIOR

This module ships with a share file called C<share/MANIFEST.SKIP>. This is the
basis for all new MANIFEST.SKIP files. This module will look for an already
existing C<MANIFEST.SKIP> file and take all the text before the first blank
line, and prepend it to the start of a new SKIP file. This allows you to put
your own personal section at the top, that will not be overwritten later.

It will then look for lines beginning with a dash followed by a space.
Like this:

      - \bfoo\b
      - ^bar/
      - ^baz$

It will comment out each of these lines and any other lines that match the
text (after the '- '). This allows you to override the default SKIPs.

=head1 AUTHOR

Ingy döt Net <ingy@cpan.org>

=head1 COPYRIGHT AND LICENSE

Copyright 2011-2014. Ingy döt Net.

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

See L<http://www.perl.com/perl/misc/Artistic.html>

=cut
