Skip to content

Commit f8e47e9

Browse files
committed
- fix 'not a git repo' error in container
- explicitly set line length rule
1 parent 017adf4 commit f8e47e9

File tree

3 files changed

+55
-0
lines changed

3 files changed

+55
-0
lines changed

grumphp.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ services:
3232
- '@GrumPHP\Util\Paths'
3333
tags:
3434
- { name: 'console.command' }
35+
GrumPHP\Locator\RegisteredFiles:
36+
class: \Space48\CodeQuality\Locator\RegisteredFiles
37+
arguments:
38+
- '@GrumPHP\Git\GitRepository'
39+
- '@GrumPHP\Util\Paths'
40+
- '@GrumPHP\Locator\ListedFiles'
3541

3642
## linter settings
3743
grumphp:

rulesets/ruleset.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
<rule ref="Generic.Files.LineLength">
3131
<properties>
3232
<property name="ignoreComments" value="true"/>
33+
<property name="lineLimit" value="120"/>
34+
<property name="absoluteLineLimit" value="120"/>
3335
</properties>
3436
</rule>
3537

src/Locator/RegisteredFiles.php

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Space48\CodeQuality\Locator;
6+
7+
use GrumPHP\Collection\FilesCollection;
8+
use GrumPHP\Git\GitRepository;
9+
use GrumPHP\Util\Paths;
10+
use GrumPHP\Locator\ListedFiles;
11+
12+
// rewritten to catch 'not a git repo' error inside container where no '.git' folder is synced
13+
class RegisteredFiles extends \GrumPHP\Locator\RegisteredFiles
14+
{
15+
/**
16+
* @var GitRepository
17+
*/
18+
private $repository;
19+
20+
/**
21+
* @var Paths
22+
*/
23+
private $paths;
24+
25+
/**
26+
* @var ListedFiles
27+
*/
28+
private $listedFiles;
29+
30+
public function __construct(GitRepository $repository, Paths $paths, ListedFiles $listedFiles)
31+
{
32+
$this->repository = $repository;
33+
$this->paths = $paths;
34+
$this->listedFiles = $listedFiles;
35+
}
36+
37+
public function locate(): FilesCollection
38+
{
39+
try {
40+
$allFiles = trim((string)$this->repository->run('ls-files', [$this->paths->getProjectDir()]));
41+
} catch (\Gitonomy\Git\Exception\ProcessException $e) {
42+
$allFiles = '';
43+
}
44+
45+
return $this->listedFiles->locate($allFiles);
46+
}
47+
}

0 commit comments

Comments
 (0)