# NAME

Dist::Zilla::Plugin::ShareDir::Tarball - Bundle your shared dir into a tarball

# VERSION

version 0.6.0

# SYNOPSIS

    # in dist.ini

    [ShareDir::Tarball]

# DESCRIPTION

Using [File::ShareDir](https://metacpan.org/pod/File::ShareDir) to deploy non-Perl files alongside a distribution is
great, but it has a problem.  Just like for modules, upon installation CPAN clients
don't remove any of the files that were already present in the _/lib_
directories beforehand. So if version 1.0 of the distribution was sharing

    share/foo
    share/bar

and version 1.1 changed that to 

    share/foo
    share/baz

then a user installing first version 1.0 then 1.1 will end up with 

    share/foo
    share/bar
    share/baz

which might be a problem (or not).

Fortunately, there is a sneaky
workaround in the case where you don't want the files of past distributions to
linger around. The trick is simple: bundle all the files to be shared into
a tarball called _shared-files.tar.gz_.  As there is only that one file, any
new install is conveniently clobbering the old version. 

But archiving the content of the _share_ directory is no fun. Hence
[Dist::Zilla::Plugin::ShareDir::Tarball](https://metacpan.org/pod/Dist::Zilla::Plugin::ShareDir::Tarball) which, upon the file munging stage, gathers all 
files in the _share_ directory and build the _shared-files.tar.gz_ archive
with them.  If there is no such files, the process is simply skipped.

# OPTIONS

## dir

The source directory to be bundled into the shared tarball. Defaults to
`share`.

# SEE ALSO

[Dist::Zilla::Plugin::ShareDir](https://metacpan.org/pod/Dist::Zilla::Plugin::ShareDir), which is similar to this module, but without
the conversion of the shared directory into a tarball.

[File::ShareDir::Tarball](https://metacpan.org/pod/File::ShareDir::Tarball) - transparently extract the tarball behind the
scene so that the shared directory can be accessed just like it is in
[File::ShareDir](https://metacpan.org/pod/File::ShareDir).

[Module::Build::CleanInstall](https://metacpan.org/pod/Module::Build::CleanInstall) - A subclass of [Module::Build](https://metacpan.org/pod/Module::Build) which
deinstall the files from previous installations via their _packlist_.

# AUTHOR

Yanick Champoux <yanick@cpan.org> [![endorse](http://api.coderwall.com/yanick/endorsecount.png)](http://coderwall.com/yanick)

# COPYRIGHT AND LICENSE

This software is copyright (c) 2012 by Yanick Champoux.

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