drupal-init-tools: quick and easy Drupal 8 setup
Drupal 8 is quite an improvement over previous versions of Drupal with regard to the reproducibility of a site from a minimal source repository.
The recommended way to set up a new Drupal 8 site is to use composer, and the most convenient way to do that is via drupal-composer/drupal-project, which brings in Drush and drupal-console as per-site dependencies; from there the site can be installed and managed.
However the fact that Drush and drupal-console are per-site dependencies poses a problem: they are not available until the site dependencies have been downloaded, this means that it's not really possible to add “bootstrapping” commands to them to make it easier to set up new projects.
This is what motivated me to put together drupal-init-tools: a minimalistic set of wrapper scripts which can be used when Drush and drupal-console are not available yet, or when they have to be combined together to perform a task in a better way.
drupal-init-tools has been developed mainly to speed up prototyping, and it is particularly useful to set up sites under ~/public_html
when the web server is using something like the Apache userdir module; however I feel it could be useful in production too after some cleanups.
drupal-init-tools standardizes the setup and installation of new Drupal projects: for example the drin new
command makes sure that the original drupal-composer/drupal-project repository is still accessible from an upstream
git remote so that the developer can easily track changes in drupal-composer/drupal-project and keep up if appropriate for their particular project.
Some drin
commands also provide a nicer interface for frequent and important tasks, like the actual site-install
step, or the creation of an installation profile that could replicate the installed site.
Here are some examples of use taken from the drin manual.
Create and install a new Drupal project:
cd ~/public_html
drin new drupal_test_site
cd drupal_test_site
$EDITOR bootstrap.conf
drin bootstrap --devel
Create an installation profile from the currently installed project:
drin create-profile "Test Profile" test_profile
Clean and rebuild the whole project to verify that installing from scratch works:
drin clean
drin bootstrap
A quick way to test drupal-init-tools is this:
git clone git://git.ao2.it/drupal-init-tools.git
cd drupal-init-tools/
make local
./drin --help
Give it a go and let me know what you think.
If it proves useful to others I could have it packaged and uploaded to Debian to make it more “official”, IMHO it makes sense to have such a small meta-tool like drin
as a system global command.