NAME

ppk-deptool - Perl Packager dependency tool

SYNOPSIS

~$ ppk-deptool list-targets
some-program

~$ ppk-deptool list-target-deps some-program
Some-Module-0.0.tar.gz

~$ ppk-deptool fetch-dist Some-Module-0.0.tar.gz

~$ ppk-deptool fetch-dist --deps-for some-program

DESCRIPTION

ppk-deptool provides support for managing dependencies for self-contained programs in a manner that aids in the creation of a Makefile for easy building. ppk-deptool is able to reference a PROG.INDEX, as well as a DIST.INDEX file, which are used to represent lists of programs and their Perl package depenencies, as well as how to fetch said dependencies from a remote source.

ARGUMENTS

list-targets

Open the PROG.INDEX file in the current directory and list all build targets therein, one per line.

list-target-deps target

Given a target listed in PROG.INDEX, list all the Perl package dependencies needed to build that target.

fetch-dist dist

Given a Perl package distribution listed in DIST.INDEX, fetch the Perl package distribution and place it in the current working directory.

fetch-dist --deps-for target

Given a target listed in PROG.INDEX, fetch all dependencies from each source listed in DIST.INDEX.

PROG.INDEX

The PROG.INDEX file is a flat file formatted in the following manner.

program-a: Some-Dep-0.1.tar.gz Another-Dep-1.0.tar.gz
program-b: Some-Dep-0.1.tar.gz Acme-Eyebleach-1.0.tar.gz

Lines can consist solely of whitespace, or begin with a hash (#) to begin a comment. Any number of whitespace-delimited distribution names can be listed as dependencies for a target program. Dependencies should have a corresponding definition in DIST.INDEX.

DIST.INDEX

The DIST.INDEX file is a flat file which lists all available Perl package distribution dependencies for a project, as well as a single URI from which each may be obtained. Entries may be listed as such:

#
# Tarball via HTTP
#
Another-Dep-1.0.tar.gz: http://foo.bar/baz/Another-Dep-1.0.tar.gz

#
# Tarball via HTTP via CPAN
#
Acme-Eyebleach-1.0.tar.gz: cpan://SOMEBODY/Acme-Eyebleach-1.0.tar.gz

#
# Repository via git
#
Yet-Another-1.0: git://foo.bar/baz/Yet-Another

Empty lines containing only whitespace, or beginning with any amount of whitespace, or none at all, followed by a hash (#) to denote a comment, are permitted.

COPYRIGHT

Copyright (c) 2018, cPanel, L.L.C. All rights reserved. This is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic for further details.