Commit | Line | Data |
89de6a33 |
1 | package Gitalist; |
42fe5d11 |
2 | use Moose; |
775e96e0 |
3 | BEGIN { require 5.008006; } |
89de6a33 |
4 | use Catalyst::Runtime 5.80; |
775e96e0 |
5 | use namespace::autoclean; |
89de6a33 |
6 | |
42fe5d11 |
7 | extends 'Catalyst'; |
89de6a33 |
8 | |
43d4a724 |
9 | use Catalyst qw/ |
89de6a33 |
10 | ConfigLoader |
fac828e0 |
11 | Unicode::Encoding |
d5cc37a4 |
12 | Static::Simple |
fac828e0 |
13 | StackTrace |
14 | /; |
61b56ed6 |
15 | |
3bb1576d |
16 | our $VERSION = '0.000003'; |
775e96e0 |
17 | $VERSION = eval $VERSION; |
89de6a33 |
18 | |
d3feefcf |
19 | __PACKAGE__->config( |
61b56ed6 |
20 | name => 'Gitalist', |
21 | default_view => 'Default', |
1aad4e81 |
22 | default_model => 'GitRepos', |
d3feefcf |
23 | ); |
89de6a33 |
24 | |
89de6a33 |
25 | __PACKAGE__->setup(); |
26 | |
4df2f62f |
27 | around uri_for => sub { |
28 | my ($orig, $c) = (shift, shift); |
68068ba2 |
29 | my $project_name = $c->stash->{'Project'} && $c->stash->{'Project'}->name; |
c1f608c8 |
30 | my $hash = ref($_[-1]) eq 'HASH' ? pop @_ : {}; |
4df2f62f |
31 | my $params = Catalyst::Utils::merge_hashes( |
68068ba2 |
32 | { p => $hash->{p} || $project_name }, |
c1f608c8 |
33 | $hash, |
4df2f62f |
34 | ); |
68068ba2 |
35 | delete $params->{p} unless defined $params->{p} && length $params->{p}; |
4df2f62f |
36 | (my $uri = $c->$orig(@_, $params)) |
37 | =~ tr[&][;]; |
38 | return $uri; |
39 | }; |
61b56ed6 |
40 | |
775e96e0 |
41 | 1; |
42 | |
43 | __END__ |
44 | |
89de6a33 |
45 | =head1 NAME |
46 | |
775e96e0 |
47 | Gitalist - A modern git web viewer |
89de6a33 |
48 | |
49 | =head1 SYNOPSIS |
50 | |
63f34424 |
51 | script/gitalist_server.pl --repo_dir /home/me/code/git |
89de6a33 |
52 | |
b6d010e1 |
53 | =head1 INSTALL |
54 | |
55 | As Gitalist follows the usual Perl module format the usual approach |
63f34424 |
56 | for installation should work e.g. |
b6d010e1 |
57 | |
58 | perl Makefile.PL |
59 | make |
60 | make test |
61 | make install |
62 | |
63f34424 |
63 | or |
64 | |
65 | cpan -i Gitalist |
66 | |
67 | You can also check gitalist out from git and run it, in this case you'll additionally |
68 | need the author modules, but no configuration will be needed as it will default to looking |
69 | for repositories the directory above the checkout. |
b6d010e1 |
70 | |
89de6a33 |
71 | =head1 DESCRIPTION |
72 | |
b6d010e1 |
73 | Gitalist is a web frontend for git repositories based on gitweb.cgi |
775e96e0 |
74 | and backed by Catalyst. |
b6d010e1 |
75 | |
76 | =head2 History |
77 | |
78 | This project started off as an attempt to port gitweb.cgi to a |
79 | Catalyst app in a piecemeal fashion. As it turns out, thanks largely |
80 | to Florian Ragwitz's earlier effort, it was easier to use gitweb.cgi |
81 | as a template for building a new Catalyst application. |
89de6a33 |
82 | |
63f34424 |
83 | =head1 CONFIGURATION |
84 | |
85 | Gitalist can be supplied with a config file by setting the C<< GITALIST_CONFIG >> |
86 | environment variable to point to a configuration file. |
87 | |
88 | A default configuration is installed along with gitalist, which is complete except |
89 | for a repository directory. You can get a copy of this configuration by running: |
90 | |
91 | cp `perl -Ilib -MGitalist -e'print Gitalist->path_to("gitalist.conf")'` gitalist.conf |
92 | |
93 | adding a repos_dir path and then setting C<< GITALIST_CONFIG >>. |
94 | |
95 | Alternatively, if you only want to set a repository directory and are otherwise happy with |
96 | the default configuration, then you can set the C<< GITALIST_REPOS_DIR >> environment |
97 | variable, or pass the C<< --repos_dir >> flag to any of the scripts. |
98 | |
99 | The C<< GITALIST_REPOS_DIR >> environment variable will override the repository directory set |
100 | in configuration, and will itself be overridden by he C<< --repos_dir >> flag. |
101 | |
89de6a33 |
102 | =head1 SEE ALSO |
103 | |
b6d010e1 |
104 | L<Gitalist::Controller::Root> |
105 | |
106 | L<Gitalist::Git::Project> |
107 | |
108 | L<Catalyst> |
89de6a33 |
109 | |
42fe5d11 |
110 | =head1 AUTHORS AND COPYRIGHT |
89de6a33 |
111 | |
42fe5d11 |
112 | Catalyst application: |
b6d010e1 |
113 | (C) 2009 Venda Ltd and Dan Brook <broq@cpan.org> |
114 | (C) 2009, Tom Doran <bobtfish@bobtfish.net> |
115 | (C) 2009, Zac Stevens <zts@cryptocracy.com> |
42fe5d11 |
116 | |
117 | Original gitweb.cgi from which this was derived: |
118 | (C) 2005-2006, Kay Sievers <kay.sievers@vrfy.org> |
119 | (C) 2005, Christian Gierke |
89de6a33 |
120 | |
b6d010e1 |
121 | Model based on http://github.com/rafl/gitweb |
122 | (C) 2008, Florian Ragwitz |
89de6a33 |
123 | |
b6d010e1 |
124 | =head1 LICENSE |
42fe5d11 |
125 | |
b6d010e1 |
126 | Licensed under GNU GPL v2 |
89de6a33 |
127 | |
128 | =cut |