CLI developments

Patrick Dawkins
Product Engineer
16 Mar 2015

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 .

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

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

    <p>A HipChat integration will report activity to your private HipChat room.</p>

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

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

    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!