Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kentnl/dist-zilla-plugin-prereqs-darkpan
Depend on things from arbitrary places-not-CPAN
https://github.com/kentnl/dist-zilla-plugin-prereqs-darkpan
Last synced: 4 days ago
JSON representation
Depend on things from arbitrary places-not-CPAN
- Host: GitHub
- URL: https://github.com/kentnl/dist-zilla-plugin-prereqs-darkpan
- Owner: kentnl
- License: other
- Created: 2011-10-29T19:18:52.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2017-03-12T18:06:13.000Z (over 7 years ago)
- Last Synced: 2023-08-20T22:00:28.314Z (about 1 year ago)
- Language: Perl
- Homepage:
- Size: 325 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.mkdn
- Changelog: Changes
- License: LICENSE
Awesome Lists containing this project
README
# NAME
Dist::Zilla::Plugin::Prereqs::DarkPAN - Depend on things from arbitrary places-not-CPAN
# VERSION
version v0.3.1
# SYNOPSIS
From time to time, people find themselves in want to depending on something that
isn't from CPAN, but their team/in-house crew want a painless way to depend on
it anyway.[Prereqs::DarkPAN]
DDG = http://adarkpan.example.org/ ; DarkPAN Base URI
; optional
DDG.minversion = 0.4.0
; optional
; But likely to be substantially faster.
DDG.uri = /path/to/foo/bar.tar.gzThis would provide to various user commands the knowledge that `DDG.tar.gz` was
wanted to provide the package `DDG`.Our hope is one day you can just do
# Doesn't work yet :(
$ cpanm $( dzil listdeps )or
# Doesn't work yet :(
$ cpanm $( dzil listdeps --missing )and have it do the right things.
In the interim, you can do
$ cpanm $( dzil listdeps ) \
&& cpanm $( dzil listdeps_darkpan )or
$ cpanm $( dzil listdeps --missing ) \
&& cpanm $( dzil listdeps_darkpan --missing )and have it work.
# DarkPAN Configurations.
## A Simple HTTP Server
The easiest DarkPAN-ish thing that this module supports is naïve HTTP Servers,
by simply setting the server and path to the resource.[Prereqs::DarkPAN]
Foo = http://my.server/
Foo.uri = files/foo.tar.gzYou can specify an optional minimum version parameter `minversion` as a client-side check to
make sure they haven't installed an older version of Foo.This `uri` will be reported to listdeps\_darkpan with minimal modification, only
expanding relative paths to absolute ones so tools like `cpanm` can use them.## A `MicroCPAN` Configuration
There is a newly formed system for creating "proper" CPANs which only contain a
handful of modules. For these services you can simply do[Prereqs::DarkPAN]
Foo = http://my.server/And we'll fire up all sorts of magic to get the `02packages.details.tar.gz`
file, shred it, and try installing 'Foo' from there.## Heavier CPAN configurations
The 3rd use case is when you have somewhat heavy-weight private CPANs where you
don't want to be encumbered by the weight of downloading and parsing
`02packages.details.tar.gz`. If you have a full CPAN clone with a few modules
stuffed into it, and you only want those stuffed modules while using normal CPAN
( because the cloned versions from CPAN are now old ), its possibly better to
use the original notation[Prereqs::DarkPAN]
Foo = http://my.server/
Foo.uri = path/too/foo.tar.gzAs it will only fetch the file specified instead of relying on
`02packages.details.tar.gz`Granted, this latter approach will bind again to downloading a specific version
of the prerequisite, but this is still here for you if you need it.# AUTHOR
Kent Fredric
# COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by Kent Fredric .
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.