Created
February 12, 2014 20:29
-
-
Save chrisfromredfin/8963894 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Implementation of hook_drush_command(). | |
* | |
* In this hook, you specify which commands your | |
* drush module makes available, what it does and | |
* description. | |
* | |
* Notice how this structure closely resembles how | |
* you define menu hooks. | |
* | |
* @See drush_parse_command() for a list of recognized keys. | |
* | |
* @return | |
* An associative array describing your command(s). | |
*/ | |
function redfin_drush_command() { | |
$items = array(); | |
$items['redfin-db'] = array( | |
'description' => 'Prints the db connection string from settings.php', | |
'arguments' => array(), | |
'examples' => array('drush redfin-db'), | |
'aliases' => array('rdb'), | |
'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_CONFIGURATION, | |
); | |
$items['redfin-vr'] = array( | |
'callback' => 'redfin_revert_views', | |
'drupal dependencies' => array('views'), | |
'description' => 'Revert overridden views to their default state. Make sure to backup first.', | |
'arguments' => array(), | |
'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_FULL, | |
'aliases' => array('rvr'), | |
'examples' => array( | |
'drush rvr archive' => 'Reverts all yo views!', | |
), | |
); | |
return $items; | |
} | |
/** | |
* Implementation of hook_drush_help(). | |
* | |
* This function is called whenever a drush user calls | |
* 'drush help <name-of-your-command>' | |
* | |
* @param | |
* A string with the help section (prepend with 'drush:') | |
* | |
* @return | |
* A string with the help text for your command. | |
*/ | |
function redfin_drush_help($section) { | |
switch ($section) { | |
case 'drush:redfin-db': | |
return dt("This command simply prints the DB connection string from settings.php"); | |
break; | |
case 'drush:redfin-vr': | |
return dt("This command reverts ALL overridden views!"); | |
break; | |
} | |
} | |
/** | |
* Example drush command callback. This is where the action takes place. | |
* | |
* The function name should be same as command name but with dashes turned to | |
* underscores and 'drush_commandfile_' prepended, where 'commandfile' is | |
* taken from the file 'commandfile.drush.inc', which in this case is 'redfin'. | |
* Note also that a simplification step is also done in instances where | |
* the commandfile name is the same as the beginning of the command name, | |
* "drush_example_example_foo" is simplified to just "drush_example_foo". | |
* To also implement a hook that is called before your command, implement | |
* "drush_hook_pre_example_foo". For a list of all available hooks for a | |
* given command, run drush in --debug mode. | |
* | |
* If for some reason you do not want your hook function to be named | |
* after your command, you may define a 'callback' item in your command | |
* object that specifies the exact name of the function that should be | |
* called. However, the specified callback function must still begin | |
* with "drush_commandfile_" (e.g. 'callback' => "drush_example_foo_execute"). | |
* All hook functions are still called (e.g. drush_example_pre_foo_execute, | |
* and so on.) | |
* | |
* In this function, all of Drupal's API is (usually) available, including | |
* any functions you have added in your own modules/themes. | |
* | |
*/ | |
function drush_redfin_db() { | |
if( drush_drupal_version() >= 7) { | |
global $databases; | |
$defdb = $databases['default']['default']; | |
print $defdb['driver'].'://'.$defdb['username'].':'.$defdb['password'].'@'.$defdb['host'].'/'.$defdb['database']."\n"; | |
} | |
else { | |
global $db_url; | |
print $db_url."\n"; | |
} | |
} | |
function redfin_revert_views() { | |
$i = views_revert_allviews(views_get_all_views()); | |
drush_log(dt('Reverted a total of @count views.', array('@count' => $i)), 'ok'); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
drush rvr
should be made a shell alias todrush ctools-export-revert views_view
. Just add to drushrc.php;It should be one less command to maintain, and it lets you choose a specific view to revert, like
drush rvr archive
only reverting the default archive view that comes with views. See http://www.drushcommands.com/drush-6x/ctools/ctools-export-revert for more on that command.