I’m a big fan of Drush and its bundled feature Drush Make. Drush Make used to be its own project separate from Drush — for some time now it has been included into Drush core.
When using Drush make there are default options set by drush when you run certain commands. Typically the default option is fine for the command you are running. For instance the default location when using `drush download MODULE_NAME` is to download the module to your /sites/all/modules directory of your Drupal installation.
When developing an Installation Profile using Drush Make or a custom project simply built from a Drush Make file — sometimes we want to tweak these default Drush behaviors. Drush Make supports overrides of these defaults. For instance the following makefile changes the default location for downloaded modules from the “modules” directory; to a directory called “contrib” within the default modules directory:
api = 2 core = 7.x // This option overrides a "default" behavior in Drush Make. defaults[projects][subdir] = contrib ;;;;;;;;;; Modules projects[securepages] = 1.0-beta2 projects[devel] = 1.3 projects[strongarm] = 2.0 projects[features] = 1.0
By overriding defaults such as these we can get more flexibility in tools we’re using! Sweet. This also helps by making your Drush Makefiles less verbose. There are some active issues to streamline Drush Makefiles even further in the future with more magic shorthand notations.