I currently use drush alot to manage my sites, but I was wondering if there was a way to skip bootstrapping drupal everytime drush is run for certain commands that might not need it. This would save significant load time. I tend to do pm-list alot, but sometimes it just takes a long time to load depending on the size of the site. Same goes for enabling/disabling modules.
That is hard-coded for each command: The module defining a Drush command sets the bootstrap level required to run the command. For example, cache_drush_command() defines cache-clear as the following:
$items['cache-clear'] = array( 'bootstrap' => DRUSH_BOOTSTRAP_MAX, 'description' => 'Clear a specific cache, or all drupal caches.', 'arguments' => array( 'type' => 'The particular cache to clear. Omit this argument to choose from available caches.', ), 'callback' => 'drush_cache_command_clear', 'aliases' => array('cc'), );
To require not bootstrap at all, the "bootstrap" property should be defined as follows.
$items['xkcd-fetch'] = array( 'description' => "Retrieve and display xkcd cartoons.", 'arguments' => array( 'search' => 'Optional argument to retrive the cartoons matching an index number, keyword search or "random". If omitted the latest cartoon will be retrieved.', ), 'options' => array( 'image-viewer' => 'Command to use to view images (e.g. xv, firefox). Defaults to "display" (from ImageMagick).', 'google-custom-search-api-key' => 'Google Custom Search API Key, available from https://code.google.com/apis/console/. Default key limited to 100 queries/day globally.', ), 'examples' => array( 'drush xkcd' => 'Retrieve and display the latest cartoon.', 'drush xkcd sandwich' => 'Retrieve and display cartoons about sandwiches.', 'drush xkcd 123 --image-viewer=eog' => 'Retrieve and display cartoon #123 in eog.', 'drush xkcd random --image-viewer=firefox' => 'Retrieve and display a random cartoon in Firefox.', ), 'aliases' => array('xkcd'), 'bootstrap' => DRUSH_BOOTSTRAP_DRUSH, // No bootstrap at all. );
DRUSH_BOOTSTRAP_DRUSH says to Drush that Drupal doesn't need to be bootstrapped at all.
Clearly, that is not something that can be arbitrarily changed; it depends from the code executed from the command.