From 8c00c16ce9fd2ff3651f74bb18b6b5e2eec0ac3a Mon Sep 17 00:00:00 2001 From: Jaume Casado Ruiz Date: Fri, 13 Mar 2020 16:21:48 +0100 Subject: [PATCH 1/3] Instantiate Process with an array of command and parameters That's the recommended usage of the Symfony Process component. @see https://symfony.com/doc/current/components/process.html#usage --- .../Configuration/Infrastructure/Hook/HookCopier.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/PhpGitHooks/Module/Configuration/Infrastructure/Hook/HookCopier.php b/src/PhpGitHooks/Module/Configuration/Infrastructure/Hook/HookCopier.php index af6e91f..a48bdb5 100644 --- a/src/PhpGitHooks/Module/Configuration/Infrastructure/Hook/HookCopier.php +++ b/src/PhpGitHooks/Module/Configuration/Infrastructure/Hook/HookCopier.php @@ -38,13 +38,21 @@ protected function hookExists(string $hookFile): bool protected function copyFile(string $hookFile): void { - $copy = new Process(sprintf("mkdir -p {$this->hooksDir} && cp %s %s", $hookFile, $this->hooksDir)); + $this->createHooksDir(); + + $copy = new Process(['cp', $hookFile, $this->hooksDir]); $copy->run(); } + protected function createHooksDir(): void + { + $mkdir = new Process(['mkdir', '-p', $this->hooksDir]); + $mkdir->run(); + } + protected function setPermissions(string $hookFile): void { - $permissions = new Process(sprintf('chmod 775 %s%s', $this->hooksDir, $hookFile)); + $permissions = new Process(['chmod', '775', $this->hooksDir . "/$hookFile"]); $permissions->run(); } From 9bc0ef190f653f13ab36da74e60bf530890c6e08 Mon Sep 17 00:00:00 2001 From: Jaume Casado Ruiz Date: Fri, 13 Mar 2020 16:24:36 +0100 Subject: [PATCH 2/3] Remove sprintf function calls for understandability Avoid function calls by using simple concatenation easier to read. --- .../Module/Configuration/Infrastructure/Hook/HookCopier.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/PhpGitHooks/Module/Configuration/Infrastructure/Hook/HookCopier.php b/src/PhpGitHooks/Module/Configuration/Infrastructure/Hook/HookCopier.php index a48bdb5..c139a2e 100644 --- a/src/PhpGitHooks/Module/Configuration/Infrastructure/Hook/HookCopier.php +++ b/src/PhpGitHooks/Module/Configuration/Infrastructure/Hook/HookCopier.php @@ -33,7 +33,7 @@ public function copyPrepareCommitMsgHook(): void protected function hookExists(string $hookFile): bool { - return file_exists(sprintf('%s%s', $this->hooksDir, $hookFile)); + return \file_exists($this->hooksDir . "/$hookFile"); } protected function copyFile(string $hookFile): void @@ -59,7 +59,7 @@ protected function setPermissions(string $hookFile): void protected function copyHookFile(string $file): void { if (false === $this->hookExists($file)) { - $this->copyFile(sprintf('%s/%s', $this->sourceHooksDir, $file)); + $this->copyFile($this->sourceHooksDir . "/$file"); $this->setPermissions($file); } } From d9e6cbf88bed734950a1a9eca569dd03bb474577 Mon Sep 17 00:00:00 2001 From: Jaume Casado Ruiz Date: Fri, 13 Mar 2020 16:59:50 +0100 Subject: [PATCH 3/3] Add missing requirement symfony/process --- composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 2fdac32..37936ea 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,8 @@ "beberlei/assert": "~2.7", "bruli/php-value-objects": "~0.1", "bruli/event-bus-bundle": "^0.5", - "symfony/flex": "~1.0" + "symfony/flex": "~1.0", + "symfony/process": "^4.0|^5.0" }, "require-dev": { "fzaninotto/faker": "^1.6",