Merge remote branch 'zts/pod-cleanup' into release
Tomas Doran [Wed, 9 Dec 2009 01:30:24 +0000 (01:30 +0000)]
* zts/pod-cleanup:
  Added some more POD for the ::Git::Object classes.
  Remove unneeded =cut commands, and various other cleanups.

Changes
README
gitalist.conf
lib/Gitalist.pm
lib/Gitalist/Git/Repo.pm
t/01app.t
t/03legacy_uri.t

diff --git a/Changes b/Changes
index 86218e2..3fd5c56 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,7 @@
 This file documents the revision history for Perl extension Gitalist.
 
+0.000002 2009-12-06
+   - Add documentation about how to configure a Gitalist instance.
    - Fix so that invalid repository directory will be detected at application
      startup and a helpful error message will be displayed.
    - Add --repos_dir command line parameter to all of the scripts which can
diff --git a/README b/README
index 301b317..a66541b 100644 (file)
--- a/README
+++ b/README
@@ -2,19 +2,25 @@ NAME
     Gitalist - A modern git web viewer
 
 SYNOPSIS
-        script/gitalist_server.pl
+        script/gitalist_server.pl --repo_dir /home/me/code/git
 
 INSTALL
     As Gitalist follows the usual Perl module format the usual approach for
-    installation should work e.g
+    installation should work e.g.
 
       perl Makefile.PL
       make
       make test
       make install
 
-    If you're running a git checkout of Gitalist then you'll additionally
-    need the author modules.
+    or
+
+      cpan -i Gitalist
+
+    You can also check gitalist out from git and run it, in this case you'll
+    additionally need the author modules, but no configuration will be
+    needed as it will default to looking for repositories the directory
+    above the checkout.
 
 DESCRIPTION
     Gitalist is a web frontend for git repositories based on gitweb.cgi and
@@ -26,6 +32,27 @@ DESCRIPTION
     Ragwitz's earlier effort, it was easier to use gitweb.cgi as a template
     for building a new Catalyst application.
 
+CONFIGURATION
+    Gitalist can be supplied with a config file by setting the
+    "GITALIST_CONFIG" environment variable to point to a configuration file.
+
+    A default configuration is installed along with gitalist, which is
+    complete except for a repository directory. You can get a copy of this
+    configuration by running:
+
+      cp `perl -Ilib -MGitalist -e'print Gitalist->path_to("gitalist.conf")'` gitalist.conf
+
+    adding a repos_dir path and then setting "GITALIST_CONFIG".
+
+    Alternatively, if you only want to set a repository directory and are
+    otherwise happy with the default configuration, then you can set the
+    "GITALIST_REPOS_DIR" environment variable, or pass the "--repos_dir"
+    flag to any of the scripts.
+
+    The "GITALIST_REPOS_DIR" environment variable will override the
+    repository directory set in configuration, and will itself be overridden
+    by he "--repos_dir" flag.
+
 SEE ALSO
     Gitalist::Controller::Root
 
index 4dc1a6d..98b3160 100644 (file)
@@ -6,7 +6,7 @@ name Gitalist
     # repo_dir __path_to(../)__
 </Model::GitRepos>
 
-sitename "Gitalist presently"
+sitename "A Gitalist"
 
 # $feature{'blame'}{'default'} = [1];
 <feature>
index 5d4739c..01a36ad 100644 (file)
@@ -13,7 +13,7 @@ use Catalyst qw/
                 StackTrace
 /;
 
-our $VERSION = '0.000001';
+our $VERSION = '0.000002';
 $VERSION = eval $VERSION;
 
 __PACKAGE__->config(
@@ -48,20 +48,25 @@ Gitalist - A modern git web viewer
 
 =head1 SYNOPSIS
 
-    script/gitalist_server.pl
+    script/gitalist_server.pl --repo_dir /home/me/code/git
 
 =head1 INSTALL
 
 As Gitalist follows the usual Perl module format the usual approach
-for installation should work e.g
+for installation should work e.g.
 
   perl Makefile.PL
   make
   make test
   make install
 
-If you're running a git checkout of Gitalist then you'll additionally
-need the author modules.
+or
+
+  cpan -i Gitalist
+
+You can also check gitalist out from git and run it, in this case you'll additionally
+need the author modules, but no configuration will be needed as it will default to looking
+for repositories the directory above the checkout.
 
 =head1 DESCRIPTION
 
@@ -75,6 +80,25 @@ Catalyst app in a piecemeal fashion. As it turns out, thanks largely
 to Florian Ragwitz's earlier effort, it was easier to use gitweb.cgi
 as a template for building a new Catalyst application.
 
+=head1 CONFIGURATION
+
+Gitalist can be supplied with a config file by setting the C<< GITALIST_CONFIG >>
+environment variable to point to a configuration file.
+
+A default configuration is installed along with gitalist, which is complete except
+for a repository directory. You can get a copy of this configuration by running:
+
+  cp `perl -Ilib -MGitalist -e'print Gitalist->path_to("gitalist.conf")'` gitalist.conf
+
+adding a repos_dir path and then setting C<< GITALIST_CONFIG >>.
+
+Alternatively, if you only want to set a repository directory and are otherwise happy with
+the default configuration, then you can set the C<< GITALIST_REPOS_DIR >> environment
+variable, or pass the C<< --repos_dir >> flag to any of the scripts.
+
+The C<< GITALIST_REPOS_DIR >> environment variable will override the repository directory set
+in configuration, and will itself be overridden by he C<< --repos_dir >> flag.
+
 =head1 SEE ALSO
 
 L<Gitalist::Controller::Root>
index 24f829b..3984dd5 100644 (file)
@@ -23,6 +23,8 @@ class Gitalist::Git::Repo {
     ## Public methods
     method project (NonEmptySimpleStr $project) {
         my $path = $self->repo_dir->subdir($project)->resolve;
+        $self->repo_dir->resolve; # FIXME - This needs to be called, or if repo_dir contains .., it'll explode below!
+                                  #         This is a Path::Class::Dir bug, right?
         die "Directory traversal prohibited" unless $self->repo_dir->contains($path);
         die "Not a valid Project" unless $self->_is_git_repo($path);
         return Project->new( $self->repo_dir->subdir($project) );
index cd20afe..93831bc 100644 (file)
--- a/t/01app.t
+++ b/t/01app.t
@@ -7,7 +7,7 @@ use FindBin qw/$Bin/;
 BEGIN {
     $ENV{GITALIST_CONFIG} = $Bin;
     $ENV{GITALIST_REPO_DIR} = undef;
-    use_ok 'Catalyst::Test', 'Gitalist'
+    use_ok 'Catalyst::Test', 'Gitalist';
 }
 
 ok( request('/')->is_success, 'Request should succeed' );
index 1522623..93ce96b 100644 (file)
@@ -7,7 +7,7 @@ use FindBin qw/$Bin/;
 BEGIN {
     $ENV{GITALIST_CONFIG} = $Bin;
     $ENV{GITALIST_REPO_DIR} = undef;
-    use_ok 'Catalyst::Test', 'Gitalist'
+    use_ok 'Catalyst::Test', 'Gitalist';
 }
 
 ok( request('/')->is_success, 'Request should succeed' );