From 63adf8ca465761ad0b7066c0125331be46986c5b Mon Sep 17 00:00:00 2001 From: Matthew Grasmick Date: Wed, 31 May 2017 11:30:55 -0400 Subject: [PATCH] Fixes #1532: Add git version requirements. --- src/Robo/Commands/Deploy/DeployCommand.php | 3 +++ src/Robo/Inspector/Inspector.php | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/Robo/Commands/Deploy/DeployCommand.php b/src/Robo/Commands/Deploy/DeployCommand.php index 43f30e2f8..0c20f14a6 100644 --- a/src/Robo/Commands/Deploy/DeployCommand.php +++ b/src/Robo/Commands/Deploy/DeployCommand.php @@ -41,6 +41,9 @@ public function deploy($options = [ 'ignore-dirty' => FALSE, 'dry-run' => FALSE, ]) { + if (!$this->getInspector()->isGitMinimumVersionSatisfied('2.0')) { + $this->logger->error("Your system does not meet BLT's requirements. Please update git to 2.0 or newer."); + } $this->checkDirty($options); if (!$options['tag'] && !$options['branch']) { diff --git a/src/Robo/Inspector/Inspector.php b/src/Robo/Inspector/Inspector.php index 5db74c02d..c92bf2b4e 100644 --- a/src/Robo/Inspector/Inspector.php +++ b/src/Robo/Inspector/Inspector.php @@ -340,6 +340,24 @@ public function commandExists($command) { return $exit_code == 0; } + /** + * Verifies that installed minimum git version is met. + * + * @param string $minimum_version + * The minimum git version that is required. + * + * @return bool + * TRUE if minimum version is satisfied. + * + */ + public function isGitMinimumVersionSatisfied($minimum_version) { + exec("git --version | cut -d' ' -f3", $output, $exit_code); + if (version_compare($output[0], $minimum_version, '>=')) { + return TRUE; + } + return FALSE; + } + /** * Gets the local behat configuration defined in local.yml. *