Yaffs site version 1.1
[yaffs-website] / vendor / drush / drush / commands / core / drupal / pm_8.inc
index f5a3beebed94ee844fef78a6d66359cdd612531d..d0d44b12c1617096c9b4cdcc80ca9de436aa5b4b 100644 (file)
@@ -43,16 +43,13 @@ function _drush_pm_uninstall($extensions) {
       drush_log(dt('!extension is already uninstalled.', array('!extension' => $extension)), LogLevel::OK);
     }
     elseif (drush_extension_get_type($extension_info[$extension]) == 'module') {
-      $dependents = array();
+      // Add installed dependencies to the list of modules to uninstall.
       foreach (drush_module_dependents(array($extension), $extension_info) as $dependent) {
-        if (!in_array($dependent, $required) && ($extension_info[$dependent]->status)) {
-          $dependents[] = $dependent;
+        // Check if this dependency is not required, already enabled, and not already already in the list of modules to uninstall.
+        if (!in_array($dependent, $required) && ($extension_info[$dependent]->status) && !in_array($dependent, $extensions)) {
+          $extensions[] = $dependent;
         }
       }
-      if (count($dependents)) {
-        drush_log(dt('To uninstall !extension, the following extensions must be uninstalled first: !required', array('!extension' => $extension, '!required' => implode(', ', $dependents))), LogLevel::ERROR);
-        unset($extensions[$extension]);
-      }
     }
   }
 
@@ -87,4 +84,3 @@ function _drush_pm_uninstall($extensions) {
     drush_log(dt('!extension was successfully uninstalled.', array('!extension' => $extension)), LogLevel::OK);
   }
 }
-