DSLM - Drupal Symlink Manager
DSLM is a set of Drush commands for managing symlinking Drupal sites back to a central set of Drupal cores and installation profiles. It's a new way to handle the concept of multisite which helps manage many Drupal sites under one shared codebase.
Configuration and Installation
The first thing you'll want to do is set up your DSLM Base directory. The DSLM Base directory must contain, at the very least, a "cores" directory which contains direct checkouts of drupal core. You may also add a "profiles" directory to hold any shared installation profiles you might want to use. Profiles and Cores must be suffixed with a version number, like this:
Once your base is set up as described above, you'll need to pass it to drush dslm in order to run commands. There are three ways to set the location of your base: It will first look for the cli switch, then in your drushrc.php and finally for an environment variable.
- The cli switch --dslm-base=/path/to/dslm_base
- The drushrc.php file $options['dslm_base'] = /path/to/dslm_base;
- The DSLM_BASE system environment variable
drush dslm-new [site-directory] [core]
Creates a new site within the directory of your choice using the Drupal core-version of your choice. If you pass the
--latest flag, the latest core will automatically be chosen. If you do not specify a Drupal core-version, you will be prompted for a choice. (example usage:
drush dslm-new newSite drupal-7.12)
Returns a listing of available DSLM cores.
Returns a listing of available DSLM profiles.
<<< Execute the following commands within a site set up with DSLM >>>
Returns the current core and any managed profiles symlinked to the site of your cwd.
drush dslm-switch-core [name]-[version]
Switches the core symlinks within your cwd's site, to a different version of Drupal core. If you do not specify a core, an interactive prompt will ask. (example usage:
drush dslm-switch-core drupal-7.15)
drush dslm-add-profile [profile-name]-[profile-version]
Creates a symlink within the 'profiles' directory to a DSLM managed installation profile. If you do not specify a profile name and/or version, you will be prompted for a choice. If the option
--upgrade is passed, DSLM will remove the already symlinked profile and add your new specified (or prompted) version. (example usage:
drush dslm-add-profile myInstallProfile-2.0 --upgrade)
drush dslm-remove-profile [profile-name]
If you specify a valid profile name to be removed, the symlink will be removed, otherwise you will be prompted with a list of DSLM-managed installation profiles this site has available to be removed.
1.0 Roadmap (for now)
Core add/switch Profile add/update/remove dslm info/cores/profiles
- settings.php handling
- dslm export - unsymlink a site from the dslm base
- dslm import - take a 'standard' drupal site and replace its core files with symlinks to the dslm base