From 986f99bb77591539049b4ddf87f2e24083f398a7 Mon Sep 17 00:00:00 2001 From: Dragos Protung Date: Tue, 9 May 2023 11:26:08 +0200 Subject: [PATCH] Support specifying the source file as path --- src/Command/UploadCommand.php | 6 +++--- src/POEditor/Configuration/File.php | 13 +++++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/Command/UploadCommand.php b/src/Command/UploadCommand.php index d83c148..2fa112f 100644 --- a/src/Command/UploadCommand.php +++ b/src/Command/UploadCommand.php @@ -8,11 +8,11 @@ use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Finder\Finder; use Symfony\Component\Translation\Translator; -use Wingu\FluffyPoRobot\POEditor\Configuration\File; use Wingu\FluffyPoRobot\POEditor\FormatGuesser; use function array_keys; use function count; +use function implode; use function is_array; use function sprintf; @@ -38,8 +38,8 @@ protected function doRun(): void $terms = []; $sourceFiles = []; foreach ($this->config->files() as $file) { - /** @var File $file */ - $finder = Finder::create()->in($this->config->basePath())->path($file->source()); + $in = implode('/', [$this->config->basePath(), $file->sourceDirectory()]); + $finder = Finder::create()->in($in)->path($file->sourceFileName()); if ($finder->count() !== 1) { if ($finder->count() === 0) { throw new RuntimeException(sprintf('No source file found for "%s".', $file->source())); diff --git a/src/POEditor/Configuration/File.php b/src/POEditor/Configuration/File.php index cbe0cd5..9f551fb 100644 --- a/src/POEditor/Configuration/File.php +++ b/src/POEditor/Configuration/File.php @@ -4,6 +4,9 @@ namespace Wingu\FluffyPoRobot\POEditor\Configuration; +use function basename; +use function dirname; + final class File { private string $source; @@ -24,6 +27,16 @@ public function source(): string return $this->source; } + public function sourceDirectory(): string + { + return dirname($this->source); + } + + public function sourceFileName(): string + { + return basename($this->source); + } + public function translation(): string { return $this->translation;