Skip to main content CLI developments

The command line has always been the most flexible and powerful way for us humans to communicate with their computers. For web developers, command-line tools have proliferated over recent years: many developers spend most of their time typing commands in a shell.

Our command-line interface, the CLI, is based on the Symfony Console component. It’s convenient to use alongside other command-line tools: you need to use git to manage the project’s code, so platform is a natural way to manage the project itself. The CLI also helps you build projects for local development, particularly if you use Drupal.

To install or upgrade, you can use Composer:

composer global require 'platformsh/cli:@stable'

Recent new features (over the past two months) include:

  • Activity commands, for viewing recent activities on an environment - activity:list (activities) and activity:log.
  • An environment:metadata command for reading additional environment properties - this also lets you update the environment’s title, and its ‘parent’ and ‘enable_smtp’ properties.
  • The ssh-key:add command can now generate an SSH public key for you, before uploading it to your account.
  • Integration commands, for adding GitHub, HipChat, and other integrations - integration:list (integrations), integration:add, integration:update, and integration:delete.

    A GitHub integration allows you to create environments for every pull request (and/or every branch) in your GitHub repository:

    platform integration:add --type github --repository example/example --token ExampleToken

    A HipChat integration will report activity to your private HipChat room.

    platform integration:add --type hipchat --room 123456 --token ExampleToken

    There is also a generic ‘webhook’ integration: will post information about every activity to your own webhook URL.

    platform integration:add --type webhook --url
  • A new environment:restore command for restoring a backup. You can also now list recent backups using: platform environment:backup --list
  • Commands which trigger remote operations on now wait for the operation to complete: branch, activate, deactivate, backup, restore, merge, and synchronize. Or if you are impatient, you can pass a --no-wait option. You can use platform activity:list to check the state of previous operations.

Other improvements:

  • Improved usability (validation and feedback) for the httpaccess command.
  • Install Drush automatically when required (provided that Composer is available globally).
  • Check for ‘vanilla-mode’ Drupal without requiring COPYRIGHT.txt.
  • Changed Drupal ‘profile-mode’ builds so that Drush Make no longer builds inside the repository.
  • Many other small bug fixes.

For more information about the CLI (and to file issues) see the public GitHub repository. We accept pull requests!

Patrick Dawkins
Mar 16, 2015