From eaa7f6cfcc5b7abdd2ae827978cd116a31495e69 Mon Sep 17 00:00:00 2001 From: Dane Powell Date: Thu, 24 Mar 2016 17:28:39 -0500 Subject: [PATCH] Issue #2693831 by Dane Powell: Added features-revert-all drush command. --- drush/features.drush.inc | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/drush/features.drush.inc b/drush/features.drush.inc index 00cde35..529bdad 100644 --- a/drush/features.drush.inc +++ b/drush/features.drush.inc @@ -46,6 +46,14 @@ function features_drush_command() { 'aliases' => array('fl'), ); + $items['features-revert-all'] = array( + 'description' => 'Reverts all installed features.', + 'examples' => array( + "drush features-list-packages" => 'Display a list of all existing featurea and packages available to be generated.', + ), + 'aliases' => array('fra'), + ); + $items['features-export'] = array( 'description' => "Export the configuration on your site into a custom module.", 'arguments' => array( @@ -248,6 +256,32 @@ function drush_features_list_packages($package_name = '') { } /** + * Drush command callback for features-revert-all. + * + * @return bool + */ +function drush_features_revert_all() { + _drush_features_options(); + /** @var \Drupal\features\FeaturesManagerInterface $manager */ + $manager = \Drupal::service('features.manager'); + $packages = $manager->getPackages(); + + $packages = $manager->filterPackages($packages); + $result = array(); + + foreach ($packages as $package) { + $overrides = $manager->detectOverrides($package); + + if ($package->getStatus() == FeaturesManagerInterface::STATUS_INSTALLED) { + drush_print(dt('Reverting @module...', array('@module' => $package->getName()))); + drush_features_import($package->getMachineName()); + } + } + + return TRUE; +} + +/** * Provides Drush command callback for features-export. */ function drush_features_export($packages = NULL) { -- 2.5.0