Skip to content

Commit 465fac2

Browse files
danepowellmikeker
authored andcommitted
Issue drush-ops#1854: Allow uninstall of dependent modules. (drush-ops#2566)
* Issue drush-ops#1854: Allow uninstall of dependent modules. * Updated documentation. * List all modules to be uninstalled.
1 parent a5a119d commit 465fac2

File tree

2 files changed

+5
-9
lines changed

2 files changed

+5
-9
lines changed

commands/core/drupal/pm_8.inc

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,16 +43,13 @@ function _drush_pm_uninstall($extensions) {
4343
drush_log(dt('!extension is already uninstalled.', array('!extension' => $extension)), LogLevel::OK);
4444
}
4545
elseif (drush_extension_get_type($extension_info[$extension]) == 'module') {
46-
$dependents = array();
46+
// Add installed dependencies to the list of modules to uninstall.
4747
foreach (drush_module_dependents(array($extension), $extension_info) as $dependent) {
48-
if (!in_array($dependent, $required) && ($extension_info[$dependent]->status)) {
49-
$dependents[] = $dependent;
48+
// Check if this dependency is not required, already enabled, and not already already in the list of modules to uninstall.
49+
if (!in_array($dependent, $required) && ($extension_info[$dependent]->status) && !in_array($dependent, $extensions)) {
50+
$extensions[] = $dependent;
5051
}
5152
}
52-
if (count($dependents)) {
53-
drush_log(dt('To uninstall !extension, the following extensions must be uninstalled first: !required', array('!extension' => $extension, '!required' => implode(', ', $dependents))), LogLevel::ERROR);
54-
unset($extensions[$extension]);
55-
}
5653
}
5754
}
5855

@@ -87,4 +84,3 @@ function _drush_pm_uninstall($extensions) {
8784
drush_log(dt('!extension was successfully uninstalled.', array('!extension' => $extension)), LogLevel::OK);
8885
}
8986
}
90-

commands/pm/pm.drush.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ function pm_drush_command() {
290290
// 'description' => 'Download and enable one or more modules',
291291
// );
292292
$items['pm-uninstall'] = array(
293-
'description' => 'Uninstall one or more modules.',
293+
'description' => 'Uninstall one or more modules and their dependent modules.',
294294
'arguments' => array(
295295
'modules' => 'A list of modules.',
296296
),

0 commit comments

Comments
 (0)