From 26c4006c87b78e7f068e00566f3cc907b9efdec6 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Sun, 15 May 2016 09:49:35 -0400
Subject: [PATCH] Improve migration of the composer.json file when updating

---
 bin/update.sh |   24 ++++++++++++++++++------
 1 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/bin/update.sh b/bin/update.sh
index 5bc01be..ed0d4db 100755
--- a/bin/update.sh
+++ b/bin/update.sh
@@ -169,14 +169,20 @@
     // update the require section with the new dependencies
     if (is_array($composer_data['require']) && is_array($composer_template['require'])) {
       $composer_data['require'] = array_merge($composer_data['require'], $composer_template['require']);
-      /* TO BE ADDED LATER
-      $old_packages = array();
-      for ($old_packages as $pkg) {
-        if (array_key_exists($composer_data['require'], $pkg)) {
+
+      // remove obsolete packages
+      $old_packages = array(
+        'pear/mail_mime',
+        'pear/mail_mime-decode',
+        'pear/net_smtp',
+        'pear/net_sieve',
+        'pear-pear.php.net/net_sieve',
+      );
+      foreach ($old_packages as $pkg) {
+        if (array_key_exists($pkg, $composer_data['require'])) {
           unset($composer_data['require'][$pkg]);
         }
       }
-      */
     }
 
     // update the repositories section with the new dependencies
@@ -190,12 +196,18 @@
         $existing = false;
         foreach ($composer_data['repositories'] as $k =>  $_repo) {
           if ($rkey == $_repo['type'] . preg_replace('/^https?:/', '', $_repo['url']) . $_repo['package']['name']) {
+            // switch to https://
+            if (isset($_repo['url']) && strpos($_repo['url'], 'http://') === 0)
+              $composer_data['repositories'][$k]['url'] = 'https:' . substr($_repo['url'], 5);
             $existing = true;
             break;
           }
           // remove old repos
           else if (strpos($_repo['url'], 'git://git.kolab.org') === 0) {
-              unset($composer_data['repositories'][$k]);
+            unset($composer_data['repositories'][$k]);
+          }
+          else if ($_repo['type'] == 'package' && $_repo['package']['name'] == 'Net_SMTP') {
+            unset($composer_data['repositories'][$k]);
           }
         }
         if (!$existing) {

--
Gitblit v1.9.1