]> git.vpit.fr Git - perl/modules/rgit.git/commitdiff
Don't chdir() when searching for git repositories
authorVincent Pit <vince@profvince.com>
Tue, 23 Feb 2010 14:11:07 +0000 (15:11 +0100)
committerVincent Pit <vince@profvince.com>
Tue, 23 Feb 2010 14:17:45 +0000 (15:17 +0100)
Also don't search in non-readable directories.

lib/App/Rgit/Config/Default.pm

index 147241863f909fcee69964360f45c24b16448e74..028e106a2302f351a47dd0e0393c1aa4fde4f70a 100644 (file)
@@ -43,12 +43,14 @@ sub repos {
  my %repos;
  find {
   wanted => sub {
-   return unless -d $_;
-   my $r = App::Rgit::Repository->new(dir => $File::Find::name);
+   return if m{(?:^|/)\.\.?$}
+          or not (-d $_ and -r _);
+   my $r = App::Rgit::Repository->new(dir => $_);
    $repos{$r->repo} = $r if $r
                          and not exists $repos{$r->repo};
   },
-  follow => 1
+  follow   => 1,
+  no_chdir => 1,
  }, $self->root;
  $self->{repos} = [ sort { $a->repo cmp $b->repo } values %repos ];
 }