3 use namespace::autoclean;
5 use Catalyst::Runtime 5.80;
14 our $VERSION = '0.01';
16 # Bring in the libified gitweb.cgi.
21 default_view => 'Default',
22 default_model => 'GitRepos',
23 # Set to 1 to make your fcgi die the request after you push :)
24 exit_at_end_of_request_if_updated => 0,
29 my $get_version = sub {
30 my $gitdir = shift->path_to('.git');
31 my $version = qx{cat "$gitdir/`cut -d' ' -f2 .git/HEAD`"};
36 after setup_finalize => sub {
38 $version = $c->$get_version
39 if $c->config->{exit_at_end_of_request_if_updated};
41 after handle_request => sub {
44 my $new = $c->$get_version;
45 exit 0 unless $new eq $version;
51 # Start the application
54 around uri_for => sub {
55 my ($orig, $c) = (shift, shift);
56 my $project_name = $c->stash->{'Project'} && $c->stash->{'Project'}->name;
57 my $hash = ref($_[-1]) eq 'HASH' ? pop @_ : {};
58 my $params = Catalyst::Utils::merge_hashes(
59 { p => $hash->{p} || $project_name },
62 delete $params->{p} unless defined $params->{p} && length $params->{p};
63 (my $uri = $c->$orig(@_, $params))
70 Gitalist - Transitional project to convert gitweb.cgi to a Catalyst app
74 script/gitalist_server.pl
79 As Gitalist follows the usual Perl module format the usual approach
80 for installation should work e.g
87 If you're running a git checkout of Gitalist then you'll additionally
88 need the author modules. I<NB: As no distribution exists one will
89 presently need the author modules>.
93 Gitalist is a web frontend for git repositories based on gitweb.cgi
94 and backed by Catalyst. It doesn't yet have the full functionality of
95 gitweb.cgi but it does have a few small additions at this stage.
99 This project started off as an attempt to port gitweb.cgi to a
100 Catalyst app in a piecemeal fashion. As it turns out, thanks largely
101 to Florian Ragwitz's earlier effort, it was easier to use gitweb.cgi
102 as a template for building a new Catalyst application.
106 L<Gitalist::Controller::Root>
108 L<Gitalist::Git::Project>
112 =head1 AUTHORS AND COPYRIGHT
114 Catalyst application:
115 (C) 2009 Venda Ltd and Dan Brook <broq@cpan.org>
116 (C) 2009, Tom Doran <bobtfish@bobtfish.net>
117 (C) 2009, Zac Stevens <zts@cryptocracy.com>
119 Original gitweb.cgi from which this was derived:
120 (C) 2005-2006, Kay Sievers <kay.sievers@vrfy.org>
121 (C) 2005, Christian Gierke
123 Model based on http://github.com/rafl/gitweb
124 (C) 2008, Florian Ragwitz
128 Licensed under GNU GPL v2