This is an automated email from the git hooks/post-receive script. abe pushed a commit to annotated tag 0.02 in repository libdist-zilla-plugin-githubmeta-perl.
commit 60d0509598d3248ff4fac5b4f3021f08ee44d39e Author: Chris 'BinGOs' Williams <ch...@bingosnet.co.uk> Date: Thu Jun 10 10:23:13 2010 +0100 Initial commit --- dist.ini | 23 +++++++ lib/Dist/Zilla/Plugin/GithubMeta.pm | 132 ++++++++++++++++++++++++++++++++++++ t/00_compile.t | 4 ++ 3 files changed, 159 insertions(+) diff --git a/dist.ini b/dist.ini new file mode 100644 index 0000000..370e0ac --- /dev/null +++ b/dist.ini @@ -0,0 +1,23 @@ +name = Dist-Zilla-Plugin-GithubMeta +version = 0.02 +author = Chris Williams <ch...@bingosnet.co.uk> +license = Perl_5 +copyright_holder = Chris Williams and Tatsuhiko Miyagawa + +[@Basic] + +[MetaJSON] +[PodSyntaxTests] +[PodCoverageTests] + +[GithubMeta] + +[ChangelogFromGit] +file_name = Changes + +[Prereq] +Dist::Zilla = 4.101582 +Dist::Zilla::Role::MetaProvider = 4.101582 +IPC::Cmd = 0.58 +Moose = 1.07 +MooseX::Types::URI = 0.02 diff --git a/lib/Dist/Zilla/Plugin/GithubMeta.pm b/lib/Dist/Zilla/Plugin/GithubMeta.pm new file mode 100644 index 0000000..36e7b7e --- /dev/null +++ b/lib/Dist/Zilla/Plugin/GithubMeta.pm @@ -0,0 +1,132 @@ +package Dist::Zilla::Plugin::GithubMeta; + +BEGIN { + $Dist::Zilla::Plugin::GithubMeta::VERSION = '0.02'; +} + +# ABSTRACT: Automatically include GitHub meta information in META.yml + +use Moose; +with 'Dist::Zilla::Role::MetaProvider'; + +use MooseX::Types::URI qw[Uri]; +use Cwd; +use IPC::Cmd qw[can_run]; + +has 'homepage' => ( + is => 'ro', + isa => Uri, + coerce => 1, +); + +sub metadata { + my $self = shift; + return unless _under_git(); + return unless can_run('git'); + return unless my ($git_url) = `git remote show -n origin` =~ /URL: (.*)$/m; + return unless $git_url =~ /github\.com/; # Not a Github repository + my $homepage; + if ( $self->homepage ) { + $homepage = $self->homepage->as_string; + } + else { + $homepage = $git_url; + $homepage =~ s![\w\-]+\@([^:]+):!http://$1/!; + $homepage =~ s!\.git$!/tree!; + } + $git_url =~ s![\w\-]+\@([^:]+):!git://$1/!; + return { resources => { repository => { url => $git_url }, homepage => $homepage } }; +} + + +sub _under_git { + return 1 if -e '.git'; + my $cwd = getcwd; + my $last = $cwd; + my $found = 0; + while (1) { + chdir '..' or last; + my $current = getcwd; + last if $last eq $current; + $last = $current; + if ( -e '.git' ) { + $found = 1; + last; + } + } + chdir $cwd; + return $found; +} + +__PACKAGE__->meta->make_immutable; +no Moose; + +qq[1 is the loneliest number] + +__END__ + +=head1 NAME + +Dist::Zilla::Plugin::GithubMeta - Automatically include GitHub meta information in META.yml + +=head1 SYNOPSIS + + # in dist.ini + + [GithubMeta] + + # to override the homepage + + [GithubMeta] + homepage = http://some.sort.of.url/project/ + +=head1 DESCRIPTION + +Dist::Zilla::Plugin::GithubMeta is a L<Dist::Zilla> plugin to include GitHub L<http://github.com> meta +information in C<META.yml>. + +It automatically detects if the distribution directory is under C<git> version control and whether the +C<origin> is a GitHub repository and will set the C<repository> and C<homepage> meta in C<META.yml> to the +appropriate URLs for GitHub. + +=head2 ATTRIBUTES + +=over + +=item C<homepage> + +You may override the C<homepage> setting by specifying this attribute. This should be a valid URL as +understood by L<MooseX::Types::URI>. + +=back + +=head2 METHODS + +=over + +=item C<metadata> + +Required by L<Dist::Zilla::Role::MetaProvider> + +=back + +=head1 AUTHOR + +Chris C<BinGOs> Williams + +Based on L<Module::Install::GithubMeta> which was based on +L<Module::Install::Repository> by Tatsuhiko Miyagawa + +=head1 LICENSE + +Copyright E<copy> Chris Williams and Tatsuhiko Miyagawa + +This module may be used, modified, and distributed under the same terms as Perl itself. Please see the license that came with your Perl distribution for details. + +=head1 SEE ALSO + +L<Dist::Zilla> + +L<MooseX::Types::URI> + +=cut diff --git a/t/00_compile.t b/t/00_compile.t new file mode 100644 index 0000000..4832d8e --- /dev/null +++ b/t/00_compile.t @@ -0,0 +1,4 @@ +use strict; +use warnings; +use Test::More qw[no_plan]; +use_ok('Dist::Zilla::Plugin::GithubMeta'); -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libdist-zilla-plugin-githubmeta-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list Pkg-perl-cvs-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits