# This file is suppressed from the built dist by MANIFEST.SKIP, so you
# don't have this config if you install from CPAN.
repo_dir __path_to(../)__
+ # search_recursively 1
# export_ok .export-ok
# whitelist __path_to(../project.list)__
</Model::CollectionOfRepos>
coerce => 1,
);
+
+has search_recursively => (
+ is => 'ro',
+ isa => 'Bool',
+ default => 0,
+);
+
has export_ok => (
is => 'ro',
isa => 'Str',
isa => 'Str',
);
-
sub _build_repo_dir {
my $self = shift;
$ENV{GITALIST_REPO_DIR} ?
$class = 'Gitalist::Git::CollectionOfRepositories::FromDirectory::WhiteList';
$args{repo_dir} = $self->repo_dir;
$args{whitelist} = $self->whitelist;
- } elsif ($self->_repos_count) {
+ } elsif ($self->_repos_count && !$self->search_recursively) {
$class = 'Gitalist::Git::CollectionOfRepositories::FromListOfDirectories';
$args{repos} = $self->repos;
- }
- else {
+ } else {
$class = 'Gitalist::Git::CollectionOfRepositories::FromDirectoryRecursive';
$args{repo_dir} = $self->repo_dir;
}
}
{
+ my $i = test_with_config({ repo_dir => "$FindBin::Bin/lib"});
+ is scalar($i->repositories->flatten), 5, 'Found 5 repos recursively';
+ isa_ok $i, 'Gitalist::Git::CollectionOfRepositories::FromDirectoryRecursive';
+}
+
+{
+ my $i = test_with_config({ repo_dir => "$FindBin::Bin/lib/repositories", search_recursively => 1 });
+ is scalar($i->repositories->flatten), 5, 'Found 5 repos recursively using config';
+ isa_ok $i, 'Gitalist::Git::CollectionOfRepositories::FromDirectoryRecursive';
+}
+
+{
my $i = test_with_config({ repos => [
"$FindBin::Bin/lib/repositories/bare.git",
"$FindBin::Bin/lib/repositories/repo1",