New Features CLI developments

Patrick Dawkins

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!