Skip to content

Commit d48368a

Browse files
garvinhickinglinawolf
authored andcommitted
[BUGFIX] Fix automatic detection of input directory in localization mode
1 parent 6b59ff2 commit d48368a

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

packages/typo3-guides-extension/src/Command/RunDecorator.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
6363

6464
$arguments = $input->getArguments();
6565
if ($arguments['input'] === null) {
66-
$guessedInput = $this->guessInput(self::DEFAULT_INPUT_DIRECTORY, $output);
66+
$guessedInput = $this->guessInput(self::DEFAULT_INPUT_DIRECTORY, $output, false);
6767
} else {
6868
$guessedInput = [];
6969
}
@@ -175,7 +175,7 @@ public function renderSingleLocalization(string $availableLocalization, array $b
175175
}
176176
$output->writeln(sprintf('<info>Trying to render %s ...</info>', $availableLocalization));
177177

178-
$guessInput = $this->guessInput($localInputDirectives['input-file'], $output);
178+
$guessInput = $this->guessInput($localInputDirectives['input-file'], $output, true);
179179
if ($guessInput === []) {
180180
$output->writeln('<info>Skipping, no entrypoint for localization found.</info>');
181181
return Command::SUCCESS;
@@ -294,7 +294,7 @@ public function mergeApplicationDefinition(bool $mergeArgs = true): void
294294
}
295295

296296
/** @return array<string, string> */
297-
private function guessInput(string $inputBaseDirectory, OutputInterface $output): array
297+
private function guessInput(string $inputBaseDirectory, OutputInterface $output, bool $isAbsoluteDirectory = false): array
298298
{
299299
$currentDirectory = getcwd();
300300
if ($currentDirectory === false) {
@@ -305,7 +305,13 @@ private function guessInput(string $inputBaseDirectory, OutputInterface $output)
305305
return [];
306306
}
307307

308-
$inputDirectory = $currentDirectory . DIRECTORY_SEPARATOR . $inputBaseDirectory;
308+
if ($isAbsoluteDirectory) {
309+
// Directory is already fully passed, and not a sub-directory (i.e. for localizations)
310+
$inputDirectory = $inputBaseDirectory;
311+
} else {
312+
// Directory needs to be checked within our working space (i.e. /project in container)
313+
$inputDirectory = $currentDirectory . DIRECTORY_SEPARATOR . $inputBaseDirectory;
314+
}
309315

310316
if (is_dir($inputDirectory)) {
311317
if ($output->isDebug()) {

0 commit comments

Comments
 (0)