Skip to content
This repository was archived by the owner on Apr 12, 2020. It is now read-only.
/ browser Public archive

Commit 3981d1e

Browse files
committed
Fixed previsous commit
1 parent 8b603f1 commit 3981d1e

File tree

1 file changed

+30
-15
lines changed

1 file changed

+30
-15
lines changed

src/Gitonomy/Browser/Utils/RepositoriesFinder.php

+30-15
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,29 @@ public function getRepositories($path)
1111
$repositories = array();
1212

1313
if (false !== strpos($path, '*')) {
14-
$repositoriesTmp = glob($path);
14+
$repositoriesTmp = $this->globDirectory($path);
1515
} else {
1616
$repositoriesTmp = $this->recurseDirectory($path);
1717
}
1818

1919
foreach ($repositoriesTmp as $repo) {
20-
$repositories[basename($repo)] = new Repository($repo);
20+
$repositories[] = new Repository($repo);
21+
}
22+
23+
return $repositories;
24+
}
25+
26+
private function globDirectory($path)
27+
{
28+
$repositories = array();
29+
30+
foreach (glob($path, GLOB_ONLYDIR) as $dir) {
31+
$isBare = file_exists($dir . '/HEAD');
32+
$isRepository = file_exists($dir . '/.git/HEAD');
33+
34+
if ($isRepository || $isBare) {
35+
$repositories[] = $dir;
36+
}
2137
}
2238

2339
return $repositories;
@@ -28,30 +44,29 @@ public function getRepositories($path)
2844
*/
2945
private function recurseDirectory($path)
3046
{
31-
$dir = new \DirectoryIterator($path);
47+
$dirs = new \DirectoryIterator($path);
3248

3349
$repositories = array();
3450

35-
foreach ($dir as $file) {
36-
if ($file->isDot()) {
51+
foreach ($dirs as $dir) {
52+
if ($dir->isDot() || !$dir->isDir()) {
3753
continue;
3854
}
3955

40-
if (strrpos($file->getFilename(), '.') === 0) {
56+
// Ignore hidden directories
57+
if (0 === substr($dir->getFilename(), 0, 1)) {
4158
continue;
4259
}
4360

44-
if ($file->isDir()) {
45-
$isBare = file_exists($file->getPathname() . '/HEAD');
46-
$isRepository = file_exists($file->getPathname() . '/.git/HEAD');
61+
$isBare = file_exists($dir->getPathname() . '/HEAD');
62+
$isRepository = file_exists($dir->getPathname() . '/.git/HEAD');
4763

48-
if ($isRepository || $isBare) {
49-
$repositories[] = $file->getPathname();
50-
continue;
51-
} else {
52-
$repositories = array_merge($repositories, $this->recurseDirectory($file->getPathname()));
53-
}
64+
if ($isRepository || $isBare) {
65+
$repositories[] = $dir->getPathname();
66+
continue;
5467
}
68+
69+
$repositories = array_merge($repositories, $this->recurseDirectory($dir->getPathname()));
5570
}
5671

5772
return $repositories;

0 commit comments

Comments
 (0)