From 63ae1591974e4b715ada0f16058e10bf223ae132 Mon Sep 17 00:00:00 2001
From: Bertrand Gauthier <bertrand.gauthier@unicaen.fr>
Date: Wed, 2 Oct 2019 11:29:50 +0200
Subject: [PATCH] =?UTF-8?q?Nouvelle=20fa=C3=A7on=20de=20mettre=20le=20num?=
 =?UTF-8?q?=C3=A9ro=20de=20version=20dans=20la=20config?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 bin/bump-version                       | 61 ++++++++++++++++++++++++++
 config/autoload/unicaen-app.global.php |  4 +-
 config/autoload/version.global.php     | 11 +++++
 3 files changed, 74 insertions(+), 2 deletions(-)
 create mode 100755 bin/bump-version
 create mode 100644 config/autoload/version.global.php

diff --git a/bin/bump-version b/bin/bump-version
new file mode 100755
index 0000000..6dcd654
--- /dev/null
+++ b/bin/bump-version
@@ -0,0 +1,61 @@
+#!/usr/bin/env php
+<?php
+
+/**
+ * Script à utiliser pour mettre à jour la version courante de l'application,
+ * configurée dans 'config/autoload/version.global.php'.
+ *
+ * Usage:  bump-version [<version>]
+ *
+ * Ex:     bump-version 1.3
+ */
+
+require __DIR__ . '/../vendor/autoload.php';
+
+use Zend\Config\Writer\PhpArray;
+
+$defaultConfig = [
+    'unicaen-app' => [
+        'app_infos' => [
+            'version' => 'Aucune',
+        ],
+    ]
+];
+
+$configFilepath = 'config/autoload/version.global.php';
+echo "Fichier de config: $configFilepath" . PHP_EOL;
+
+if (!is_readable($configFilepath)) {
+    echo "Fichier de config $configFilepath introuvable ou illisible." . PHP_EOL;
+    exit(1);
+}
+
+$config = require $configFilepath;
+
+if (! isset($config['unicaen-app']['app_infos']['version'])) {
+    $config = array_merge_recursive($config, $defaultConfig);
+}
+$current = $config['unicaen-app']['app_infos']['version'];
+echo sprintf("Version actuelle: %s.", $current) . PHP_EOL;
+
+$new = isset($argv[1]) ? $argv[1] : null;
+if ($new === null) {
+    $message = "Nouvelle version ? ";
+    $new = readline($message);
+}
+
+if (version_compare($new, $current) <= 0) {
+    echo ":-( Impossible, la nouvelle version doit être supérieure à l'actuelle." . PHP_EOL;
+    exit(1);
+}
+
+$config['unicaen-app']['app_infos']['version'] = $new;
+$config['unicaen-app']['app_infos']['date'] = date('d/m/Y');
+$config['comment'] = "Fichier généré le " . date('d/m/Y à H:i:s') . ' avec ' . __FILE__;
+
+$phpArray = new PhpArray();
+$phpArray
+    ->setUseBracketArraySyntax(true)
+    ->toFile($configFilepath, $config);
+
+echo "Nouvelle version inscrite: $new" . PHP_EOL;
diff --git a/config/autoload/unicaen-app.global.php b/config/autoload/unicaen-app.global.php
index 98eb16b..e9d01d9 100644
--- a/config/autoload/unicaen-app.global.php
+++ b/config/autoload/unicaen-app.global.php
@@ -19,8 +19,8 @@ return [
         'app_infos' => [
             'nom'     => "NomDeVotreApplication",
             'desc'    => "Description succincte de votre application",
-            'version' => "0.0.1",
-            'date'    => "07/11/2017",
+            //'version' => cf. 'version.global.php'
+            //'date'    => cf. 'version.global.php'
             'contact' => ['mail' => "dsi.applications@unicaen.fr", /*'tel' => "01 02 03 04 05"*/],
             'mentionsLegales'        => "http://www.unicaen.fr/acces-direct/mentions-legales/",
             'informatiqueEtLibertes' => "http://www.unicaen.fr/acces-direct/informatique-et-libertes/",
diff --git a/config/autoload/version.global.php b/config/autoload/version.global.php
new file mode 100644
index 0000000..53a31bb
--- /dev/null
+++ b/config/autoload/version.global.php
@@ -0,0 +1,11 @@
+<?php
+
+return [
+    'unicaen-app' => [
+        'app_infos' => [
+            'version' => '1.0.0',
+            'date' => '19/09/2019',
+        ],
+    ],
+    'comment' => 'Fichier généré le 19/09/2019 à 07:52:13 avec /app/bin/bump-version',
+];
-- 
GitLab