From 678caedd87f0f8cfc7725820deae703f12cb977b Mon Sep 17 00:00:00 2001 From: Robin Wieschendorf Date: Fri, 29 Dec 2023 20:44:39 +0100 Subject: [PATCH 1/5] feat: add new class GitHelper --- src/Classes/Helpers/GitHelper.php | 47 +++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/Classes/Helpers/GitHelper.php diff --git a/src/Classes/Helpers/GitHelper.php b/src/Classes/Helpers/GitHelper.php new file mode 100644 index 0000000..d0c7699 --- /dev/null +++ b/src/Classes/Helpers/GitHelper.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace RobinTheHood\ModifiedModuleLoaderClient\Helpers; + +class GitHelper +{ + public function getCurrentGitBranch(string $gitPath): ?string + { + if (!is_dir($gitPath)) { + return null; + } + + $os = strtoupper(substr(PHP_OS, 0, 3)); + $command = ''; + + switch ($os) { + case 'WIN': + $command = 'cd /d "' . $gitPath . '" & git symbolic-ref --short HEAD 2>NUL'; + break; + case 'LIN': + case 'DAR': + $command = 'cd "' . $gitPath . '" && git symbolic-ref --short HEAD 2>/dev/null'; + break; + default: + return 'unkown branch'; + } + + $output = trim('' . shell_exec($command)); + + if (empty($output)) { + return null; + } + + return $output; + } +} From 57688f636b68f25ee431ef9898ecce492fc1d7f3 Mon Sep 17 00:00:00 2001 From: Robin Wieschendorf Date: Fri, 29 Dec 2023 20:45:19 +0100 Subject: [PATCH 2/5] refactor: use new class GitHelper in IndexController --- src/Classes/Controllers/IndexController.php | 34 ++------------------- 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/src/Classes/Controllers/IndexController.php b/src/Classes/Controllers/IndexController.php index 01fff0a..93b855f 100644 --- a/src/Classes/Controllers/IndexController.php +++ b/src/Classes/Controllers/IndexController.php @@ -24,6 +24,7 @@ use RobinTheHood\ModifiedModuleLoaderClient\SendMail; use RobinTheHood\ModifiedModuleLoaderClient\Config; use RobinTheHood\ModifiedModuleLoaderClient\DependencyManager\DependencyManager; +use RobinTheHood\ModifiedModuleLoaderClient\Helpers\GitHelper; use RobinTheHood\ModifiedModuleLoaderClient\MmlcVersionInfoLoader; use RobinTheHood\ModifiedModuleLoaderClient\ModuleManager\ModuleManager; use RobinTheHood\ModifiedModuleLoaderClient\ModuleManager\ModuleManagerResult; @@ -162,7 +163,8 @@ public function invokeSelfUpdate() return $accessRedirect; } - $gitBranch = $this->getCurrentGitBranch(App::getRoot() . '/.git'); + $gitHelper = new GitHelper(); + $gitBranch = $gitHelper->getCurrentGitBranch(App::getRoot() . '/.git'); if ($gitBranch) { Notification::pushFlashMessage([ @@ -740,34 +742,4 @@ private function addModuleNotFoundNotification($archiveName, $version = '') 'type' => 'error' ]); } - - private function getCurrentGitBranch(string $gitPath): ?string - { - if (!is_dir($gitPath)) { - return null; - } - - $os = strtoupper(substr(PHP_OS, 0, 3)); - $command = ''; - - switch ($os) { - case 'WIN': - $command = 'cd /d "' . $gitPath . '" & git symbolic-ref --short HEAD 2>NUL'; - break; - case 'LIN': - case 'DAR': - $command = 'cd "' . $gitPath . '" && git symbolic-ref --short HEAD 2>/dev/null'; - break; - default: - return 'unkown branch'; - } - - $output = trim('' . shell_exec($command)); - - if (empty($output)) { - return null; - } - - return $output; - } } From ec06455c49019e38e399d3c31980e2ee4c2550b6 Mon Sep 17 00:00:00 2001 From: Robin Wieschendorf Date: Fri, 29 Dec 2023 20:46:11 +0100 Subject: [PATCH 3/5] feat: add new method getVersionAndGitBranch() to class ModuleViewModel --- src/Classes/ViewModels/ModuleViewModel.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/Classes/ViewModels/ModuleViewModel.php b/src/Classes/ViewModels/ModuleViewModel.php index 90ea2f4..4ef2ffd 100644 --- a/src/Classes/ViewModels/ModuleViewModel.php +++ b/src/Classes/ViewModels/ModuleViewModel.php @@ -14,6 +14,7 @@ namespace RobinTheHood\ModifiedModuleLoaderClient\ViewModels; use RobinTheHood\ModifiedModuleLoaderClient\App; +use RobinTheHood\ModifiedModuleLoaderClient\Helpers\GitHelper; use RobinTheHood\ModifiedModuleLoaderClient\Module; use RobinTheHood\ModifiedModuleLoaderClient\ModuleStatus; use RobinTheHood\ModifiedModuleLoaderClient\Semver\ParseErrorException; @@ -188,6 +189,27 @@ public function getVersion(): string return $this->module->getVersion(); } + public function getVersionAndGitBranch(): string + { + $version = $this->getVersion(); + + if ($this->module->isRemote()) { + return $version; + } + + $gitHelper = new GitHelper(); + $gitBranch = $gitHelper->getCurrentGitBranch( + $this->module->getLocalRootPath() . $this->module->getModulePath() . '/.git' + ); + + if ($gitBranch) { + //return $version . ' 🔀 ' . $gitBranch; + return $version . ' git:(' . $gitBranch . ')'; + } else { + return $version; + } + } + public function getDate(): string { return $this->module->getDate(); From 2813260ac658933ee2e98d1b89e976a3d387f5da Mon Sep 17 00:00:00 2001 From: Robin Wieschendorf Date: Fri, 29 Dec 2023 20:46:51 +0100 Subject: [PATCH 4/5] feat: use new method getVersionAndGitBranch() --- src/Templates/ModuleInfo.tmpl.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Templates/ModuleInfo.tmpl.php b/src/Templates/ModuleInfo.tmpl.php index 1ea6039..a233eaf 100644 --- a/src/Templates/ModuleInfo.tmpl.php +++ b/src/Templates/ModuleInfo.tmpl.php @@ -115,7 +115,7 @@ Version - getVersion(); ?> + getVersionAndGitBranch(); ?> @@ -292,8 +292,9 @@ Alle Versionen getVersions() as $moduleVersion) {?> + - getVersion(); ?> + getVersionAndGitBranch(); ?> isInstalled()) { ?> installiert From 58796a2290f5d627c17852fa7cc6276fbc15a881 Mon Sep 17 00:00:00 2001 From: Robin Wieschendorf Date: Fri, 29 Dec 2023 20:49:04 +0100 Subject: [PATCH 5/5] test: update psalm-baseline --- psalm-baseline.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/psalm-baseline.xml b/psalm-baseline.xml index abb9cea..b43db06 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -5,7 +5,7 @@ $configuration - + shell_exec($command)