X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FGitalist%2FModel%2FCollectionOfRepos.pm;h=128d0baa1d95225315957710e98eba27eeed927d;hb=2298d93ff984748b0c15d19bad6fdebb1d81c4f1;hp=84e107d628da920b6f9f5e24b3fa7526129a39d4;hpb=1d72763415136a65d6b965ab168403e99c1cf9c3;p=catagits%2FGitalist.git diff --git a/lib/Gitalist/Model/CollectionOfRepos.pm b/lib/Gitalist/Model/CollectionOfRepos.pm index 84e107d..128d0ba 100644 --- a/lib/Gitalist/Model/CollectionOfRepos.pm +++ b/lib/Gitalist/Model/CollectionOfRepos.pm @@ -3,6 +3,7 @@ package Gitalist::Model::CollectionOfRepos; use Moose; use Gitalist::Git::CollectionOfRepositories::FromDirectoryRecursive; use Gitalist::Git::CollectionOfRepositories::FromListOfDirectories; +use Gitalist::Git::CollectionOfRepositories::FromDirectory::WhiteList; use MooseX::Types::Moose qw/Maybe ArrayRef/; use MooseX::Types::Common::String qw/NonEmptySimpleStr/; use Moose::Util::TypeConstraints; @@ -49,11 +50,23 @@ has repos => ( coerce => 1, ); + +has search_recursively => ( + is => 'ro', + isa => 'Bool', + default => 0, +); + has export_ok => ( is => 'ro', isa => 'Str', ); +has whitelist => ( + is => 'ro', + isa => 'Str', +); + sub _build_repo_dir { my $self = shift; $ENV{GITALIST_REPO_DIR} ? @@ -75,13 +88,19 @@ sub build_per_context_instance { my %args = (export_ok => $self->export_ok || ''); my $class; - if ($self->_repos_count) { + if($self->whitelist && -f $self->whitelist) { + $class = 'Gitalist::Git::CollectionOfRepositories::FromDirectory::WhiteList'; + $args{repo_dir} = $self->repo_dir; + $args{whitelist} = $self->whitelist; + } elsif ($self->_repos_count && !$self->search_recursively) { $class = 'Gitalist::Git::CollectionOfRepositories::FromListOfDirectories'; $args{repos} = $self->repos; - } - else { + } elsif($self->search_recursively) { $class = 'Gitalist::Git::CollectionOfRepositories::FromDirectoryRecursive'; $args{repo_dir} = $self->repo_dir; + } else { + $class = 'Gitalist::Git::CollectionOfRepositories::FromDirectory'; + $args{repo_dir} = $self->repo_dir; } return $class->new(%args); @@ -91,6 +110,12 @@ __PACKAGE__->meta->make_immutable; __END__ +=encoding UTF-8 + +=head1 NAME + +Gitalist::Model::CollectionOfRepos - Model::CollectionOfRepos module for Gitalist + =head1 AUTHORS See L for authors.