Distribution Implementations

Distribution::Common::Tar

Installable Distribution from a .tar.gz archive

Distribution::Common::Git

Installable Distribution from a local git repo. Because this is a directory it inclusion is meant to serve as an example as Distribution::Common::Directory will handle this similarly. In the future however it could support changing branches

Distribution::Common::Directory

Essentially the built-in Distribution::Path but built around the Distribution::Common interface

Roles

Distribution::Common

The base for the various common distribution classes. Fulfills rakudo's Distribution role by providing its own IO interface requirements (Distribution::IO) which do most of the actual work. It's main purpose is to fake IO::Handle methods such as open and close for IO-like access to objects that don't need to be .open before being read.

Distribution::IO

Like rakudo's own Distribution, but with an additional requirement, ls-files, to automatically handle the setting of $!meta{files} for Distribution::Common

Distribution::IO::Proc::Tar

Distribution::IO::Proc::Git

Extract a single file from a distribution to memory. When CompUnitRepository::Installation::Install.install accesses such files they are written directly to their install location instead of first using an intermediate temporary location