Adding, removing, loading, and listing extensions

Patrick Coffey edited this page Sep 29, 2015 · 7 revisions

Aquifer is a very pluggable tool, and allows extensions in the form of npm modules to be created and installed at will. The CLI contains a great set of tools that allow you to add, remove, re-load, and list extensions.

Extensions can add tools such as deployment options and coding standards sniffers to the CLI. Once an extension has been installed, it can be configured via the aquifer.json file. For documentation on configuring extensions, please refer to the documentation that is (or should be) available in the README file within each extension.

Installing extensions

Installing extensions is very simple. You can add extensions from local directories, git repositories, and from the NPM repository.

Add extension that is published to NPM

$ aquifer extension-add extension-npm-module-name

Add local extension

$ aquifer extension-add extension-name -s /path/to/extension-name

Add extension from git repository

$ aquifer extension-add extension-name -s git+ssh://git@github.com/username/reponame

Configuring extensions

Aquifer will download the npm module extension, and add it as a dependency in the extensions property in aquifer.json. Configurations for each extension should be added to the extension's property in aquifer.json as an object, like so:

{
  "name": "test",
  "paths": {
    "make": "drupal.make",
    "settings": "settings",
    "builds": "builds/",
    "themes": {
      "root": "themes/",
      "contrib": "themes/contrib",
      "custom": "themes/custom"
    },
    "modules": {
      "root": "modules",
      "contrib": "modules/contrib",
      "custom": "modules/custom",
      "features": "modules/features"
    }
  },
  "extensions": { // This holds a list of the installed and enabled extensions.
    "aquifer-vagrant": { // This is the extension holding commands that should be configured.
      "deploy-vagrant": { // This is the command to which these configs belong.
        ip: "192.168.10.20", 
        hostname: "myWebsite.local"
      }
    }
  }

Uninstalling extensions

Extensions can be uninstalled and removed from your project by running this command:

$ aquifer extension-remove extension-npm-module-name

Once this is done, the extension and it's configurations will no longer be in the project's aquifer.json file, and the extension will not add commands to your project's CLI.

Loading extensions

Extensions are excluded from your project's git repository (see .gitignore file). So, if you're checking out an Aquifer project and someone else has added extensions, you'll need to tell Aquifer to load those extensions into your local instance of the project. This can be done by running:

$ aquifer extensions-load

Aquifer will go through the list of installed extensions, download/install them, and let you know when it's done.

Listing extensions

If you would like to see all of the extensions installed in your current project, simply run:

$ aquifer extensions
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.