#!perl
our $DATE = '2017-06-17'; # DATE
our $VERSION = '0.002'; # VERSION
# FRAGMENT id=shcompgen-hint command=_cpanm-script
use strict;
use warnings;
use HTTP::Tiny;
for (@ARGV) {
next unless /\A[A-Za-z0-9_][A-Za-z0-9_-]*\z/;
my $resp = HTTP::Tiny->new->get("https://metacpan.org/pod/$_");
unless ($resp->{success} and $resp->{content} =~ m!<a itemprop="downloadUrl" href="[^"]+/([^/]+/[^"]+)">!) {
warn "Can't get distribution path for script '$_': $resp->{status} - $resp->{reason}\n";
next;
}
$_ = $1;
}
print join(" ", "cpanm", @ARGV), "\n" if $ENV{DEBUG};
system {"cpanm"} "cpanm", @ARGV;
# ABSTRACT: Install modules from CPAN (via script name)
# PODNAME: cpanm-script
__END__
=pod
=encoding UTF-8
=head1 NAME
cpanm-script - Install modules from CPAN (via script name)
=head1 VERSION
This document describes version 0.002 of cpanm-script (from Perl distribution App-cpanm-script), released on 2017-06-17.
=head1 DESCRIPTION
L<cpanm-script> is a simplistic wrapper over L<cpanm>. This command:
% cpanm-script -n csvutil
will cause B<cpanm-script> to search for the release tarball that contains the
script (currently via scraping C<https://metacpan.org/pod/SCRIPTNAME>) and will
then run:
% cpanm -n PERLANCAR/App-CSVUtils-0.002.tar.gz
That's about it.
=head1 HOMEPAGE
Please visit the project's homepage at L<https://metacpan.org/release/App-cpanm-script>.
=head1 SOURCE
Source repository is at L<https://github.com/perlancar/perl-App-cpanm-script>.
=head1 BUGS
Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=App-cpanm-script>
When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.
=head1 AUTHOR
perlancar <perlancar@cpan.org>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by perlancar@cpan.org.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut