Drush
Drush is a command line shell and scripting interface for Drupal, a veritable Swiss Army knife designed to make life easier for those of us who spend some of our working hours hacking away at the command prompt.
- drush.ws - man, etc.
- http://drupal.org/drush-faq
- http://drupalcode.org/project/drush.git/blob/HEAD:/README.txt
Installation
pear channel-discover pear.drush.org pear install drush/drush
Commands
drush help alll the commands! drush help --filter choose which help category to echo drush pml list installed and enabled modules drush dl [project] download project drush dl sasson-7.x-3.x-dev download sasson dev release drush updb run upgrade.php
drush en [project] -y enable project without confirmation drush dis [project] -y disable project drush pm-uninstall [project] remove project from db drush cc clear caches
drush php-eval 'echo drush_get_context("DRUSH_DRUPAL_ROOT");' drush php-eval 'echo drush_locate_root() . "/" . drupal_get_path('theme', 'sasson');' drush eval 'echo theme_get_setting('sasson_compiler') . "\n" ;' otherwise gives trailing issue?
Aliases
- example.aliases.drushrc.php Drush context alias example
Make
Drush Make is part of Drush as of Jan 2012.
.make files specify a recipe for modules, themes and libraries to be downloaded by Drush.
- Drush Make readme
- http://drupalcode.org/project/profiler.git/blob/refs/heads/7.x-2.x:/README.txt#l87
- Drush Make theory for happy profile development
- Using drush_make to optimize workflow - Basics of make/profile management from mig5's first article
Examples
- http://drushmake.me/ - automatic generation demo
projects[drupal][version] = "7.16" projects[drupal][patch][] = "http://drupal.org/files/1356276-base-profile-d7-39-do-not-test.patch"
projects[sasson][type] = theme projects[sasson][version] = 3.x-dev projects[sasson][download][type] = git projects[sasson][download][url] = http://git.drupal.org/project/sasson.git
Libraries
.make files can specify external libraries to be downloaded using the Libraries API module.
; CKEditor libraries[ckeditor][download][type]= "get" libraries[ckeditor][download][url] = "[ckeditor zip url goes here]" libraries[ckeditor][directory_name] = "ckeditor" libraries[ckeditor][destination] = "libraries"
Git
You can get things from git, specify branches, etc.
Also;
- http://drupal.org/node/1206340 - options array
Deployment
- drupal.org: Using drush to synchronize and deploy sites
drush help site-alias drush help rsync drush help sql-sync
- http://www.prometsource.com/blog/using-sql-sync-rsync-drush
- vimeo: Synchronising drupal sites from local to remote using drush site aliases
- youtube: Drush Tip: Use sql-sync to Quickly Move a Database