MDL-47411 admin: Check if the plugin is a git submodule on uninstalling
authorDavid Mudrák <david@moodle.com>
Thu, 25 Sep 2014 19:17:53 +0000 (21:17 +0200)
committerDavid Mudrák <david@moodle.com>
Thu, 25 Sep 2014 19:17:53 +0000 (21:17 +0200)
Credit goes to PJ King. I was trying to add unit tests for this new
behaviour but it turned out there are many hard-coded dependencies and
it's not easy to make the whole machinery support alternative location
of testable (fake) plugins.

lib/classes/plugin_manager.php
lib/classes/update/deployer.php

index 69a706a..b385127 100644 (file)
@@ -654,6 +654,10 @@ class core_plugin_manager {
             return 'git';
         }
 
+        if (is_file($pluginroot.'/.git')) {
+            return 'git-submodule';
+        }
+
         if (is_dir($pluginroot.'/CVS')) {
             return 'cvs';
         }
index d255609..25ba168 100644 (file)
@@ -181,6 +181,10 @@ class deployer {
             return 'git';
         }
 
+        if (is_file($pluginroot.'/.git')) {
+            return 'git-submodule';
+        }
+
         if (is_dir($pluginroot.'/CVS')) {
             return 'cvs';
         }