From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

#!perl
# ABSTRACT: Open a browser window with the URL of a CPAN module's repository
# PODNAME: cpan-repo
use strict;
use Browser::Open qw( open_browser );
use Try::Tiny qw( catch try );
use URI ();
my $search = shift @ARGV;
die "usage: cpan-gh [module or distribution name]" unless $search;
my $helper = Git::Helpers::CPAN->new( name => $search );
my $repo = $helper->repository;
my $url = $repo->{web} || $repo->{url};
unless ($url) {
print q{Couldn't find repo URL for } . $helper->release_name;
exit;
}
my $uri = URI->new($url);
if ( $uri->scheme && $uri->scheme eq 'git' ) {
$uri->scheme('https');
my $path = $uri->path;
$path =~ s{\.git$}{};
$uri->path($path);
}
open_browser($uri);
__END__
=pod
=encoding UTF-8
=head1 NAME
cpan-repo - Open a browser window with the URL of a CPAN module's repository
=head1 VERSION
version 1.000001
=head1 SYNOPSIS
# search by module name
cpan-repo Git::Helpers
# search by release name
cpan-repo Git-Helpers
=head1 AUTHOR
Olaf Alders <olaf@wundercounter.com>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2015 by Olaf Alders.
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