Skip to content

Commit 8f9bbf1

Browse files
Merge pull request #22 from andreaswolf/issue-13
[FEATURE] Add option to run process command in dry-run mode
2 parents 21d5277 + a54e648 commit 8f9bbf1

File tree

5 files changed

+40
-11
lines changed

5 files changed

+40
-11
lines changed

fractor/src/Application/Contract/FilePrinter.php fractor/src/Application/Contract/FileWriter.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
use a9f\Fractor\Application\ValueObject\File;
88

9-
interface FilePrinter
9+
interface FileWriter
1010
{
11-
public function printFile(File $file): void;
11+
public function write(File $file): void;
1212
}

fractor/src/Application/FractorRunner.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
namespace a9f\Fractor\Application;
44

5-
use a9f\Fractor\Application\Contract\FilePrinter;
65
use a9f\Fractor\Application\Contract\FileProcessor;
6+
use a9f\Fractor\Application\Contract\FileWriter;
77
use a9f\Fractor\Application\ValueObject\File;
88
use a9f\Fractor\Configuration\ValueObject\Configuration;
99
use a9f\Fractor\Console\Contract\Output;
@@ -19,7 +19,7 @@
1919
/**
2020
* @param FileProcessor[] $processors
2121
*/
22-
public function __construct(private FilesFinder $fileFinder, private FilesCollector $fileCollector, private iterable $processors, private Configuration $configuration, private FilePrinter $filePrinter)
22+
public function __construct(private FilesFinder $fileFinder, private FilesCollector $fileCollector, private iterable $processors, private Configuration $configuration, private FileWriter $fileWriter)
2323
{
2424
}
2525

@@ -51,7 +51,7 @@ public function run(Output $output, bool $dryRun = false): void
5151
continue;
5252
}
5353

54-
$this->filePrinter->printFile($file);
54+
$this->fileWriter->write($file);
5555
}
5656

5757
$output->progressFinish();

fractor/src/Application/LocalFileSystemPrinter.php fractor/src/Application/LocalFileSystemWriter.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44

55
namespace a9f\Fractor\Application;
66

7-
use a9f\Fractor\Application\Contract\FilePrinter;
7+
use a9f\Fractor\Application\Contract\FileWriter;
88
use a9f\Fractor\Application\ValueObject\File;
99
use Nette\Utils\FileSystem;
1010

11-
final class LocalFileSystemPrinter implements FilePrinter
11+
final class LocalFileSystemWriter implements FileWriter
1212
{
13-
public function printFile(File $file): void
13+
public function write(File $file): void
1414
{
1515
FileSystem::write($file->getFilePath(), $file->getContent());
1616
}

fractor/src/Configuration/Option.php

+19
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,25 @@
66

77
final class Option
88
{
9+
/**
10+
* @var string
11+
*/
912
public const PATHS = 'paths';
13+
/**
14+
* @var string
15+
*/
1016
public const SKIP = 'skip';
17+
/**
18+
* @var string
19+
*/
20+
public const DRY_RUN = 'dry-run';
21+
22+
/**
23+
* @var string
24+
*/
25+
public const CONFIG = 'config';
26+
/**
27+
* @var string
28+
*/
29+
public const CONFIG_SHORT = 'c';
1130
}

fractor/src/Console/Command/ProcessCommand.php

+13-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace a9f\Fractor\Console\Command;
44

55
use a9f\Fractor\Application\FractorRunner;
6+
use a9f\Fractor\Configuration\Option;
67
use a9f\Fractor\Console\Output\SymfonyConsoleOutput;
78
use Symfony\Component\Console\Attribute\AsCommand;
89
use Symfony\Component\Console\Command\Command;
@@ -21,16 +22,25 @@ public function __construct(private readonly FractorRunner $runner)
2122
protected function configure(): void
2223
{
2324
$this->addOption(
24-
'config',
25-
'c',
25+
Option::CONFIG,
26+
Option::CONFIG_SHORT,
2627
InputOption::VALUE_REQUIRED,
2728
'The configuration file to use. Default: fractor.php in the current directory.'
2829
);
30+
31+
$this->addOption(
32+
Option::DRY_RUN,
33+
null,
34+
InputOption::VALUE_NONE,
35+
'Only see the diff of changes, do not save them to files.'
36+
);
2937
}
3038

3139
protected function execute(InputInterface $input, OutputInterface $output): int
3240
{
33-
$this->runner->run(new SymfonyConsoleOutput($output));
41+
$isDryRun = (bool) $input->getOption(Option::DRY_RUN);
42+
43+
$this->runner->run(new SymfonyConsoleOutput($output), $isDryRun);
3444

3545
return Command::SUCCESS;
3646
}

0 commit comments

Comments
 (0)