Coder Social home page Coder Social logo

pantheon-systems / terminus Goto Github PK

View Code? Open in Web Editor NEW
309.0 83.0 190.0 13.31 MB

The Pantheon CLI — a standalone utility for performing operations on the Pantheon Platform

Home Page: https://pantheon.io

License: Other

PHP 93.19% Shell 0.07% Gherkin 6.58% Twig 0.16% Ruby 0.01% Makefile 0.01%
pantheon php terminus cli drush wp-cli

terminus's Introduction

terminus : Pantheon's Command-Line Interface

Status

Commit Build Actively Maintained

About

Terminus is Pantheon's Command Line Interface (CLI), providing at least equivalent functionality to the Pantheon's browser-based Dashboard and easier scripting.

If you would like to contribute, pull requests are welcome!

The Manual

Our documentation is kept in the Terminus Manual, located here: https://pantheon.io/docs/terminus

Requirements

Operating System Version
MacOS 10.14+
Ubuntu Latest LTS
Windows + WSL + Ubuntu TBD

Package Manager

Required Packages

These packages are required to take full advantage of Terminus.

  • Composer 2 (Needed for the plugin manager component)

  • PHP (v7.4+)

  • Git (May be needed for the plugin manager component)

Recommended Packages

  • Drush (Useful to run incompatible-with-Terminus Drush commands)

  • WP-CLI (Useful to run incompatible-with-Terminus WP-CLI commands)

Installation

Mac OS:

Terminus is published as a package under pantheon-systems/external. To install it, you should run:

brew install pantheon-systems/external/terminus

Ubuntu / WinWSL+Ubuntu:

*** TBD ***

Other installation methods

Refer to the Terminus manual for other installation methods.

terminus's People

Contributors

ajbarry avatar alexdicianu avatar ari-gold avatar bensheldon avatar calevans avatar chilic avatar dangersorus avatar dustinleblanc avatar elliotfriend avatar erik-pantheon avatar greg-1-anderson avatar hengkit avatar hugovk avatar iameap avatar jcandan avatar kporras07 avatar marktheunissen avatar mikevanwinkle avatar namespacebrian avatar nstielau avatar oubawaleh avatar razzyoshi avatar stevector avatar stovak avatar tesladethray avatar truls1502 avatar twfahey1 avatar uberhacker avatar weaver299 avatar zzyou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

terminus's Issues

terminus wp plugin list --site=cals-blog throws errors.

cal$ terminus wp plugin list --site=cals-blog
Running drush plugin list on cals-blog-dev
Warning: Invalid argument supplied for foreach() in /srv/bindings/de25b6e250a141df88b042f0f920e54c/code/wp-includes/plugin.php on line 620

I can't detect any pattern but when I run it on my test install of my blog, I get 9 of these before it returns the list of plugins.

When I check the version running on the server I get:
cal$ terminus wp cli version --site=cals-blog
Running drush cli version on cals-blog-dev
WP-CLI 0.14.1

Cheers!
=C=

terminus site create: PHP Fatal error: Class 'Self' not found

Here's what I've tried:

[bwood@mbp ob_0.1_upgrade]$ terminus products all |grep Drupal
...
| 21e1fada-199c-492b-97bd-0b36b53a9da0 | Drupal 7                                    | drupal    | core        | vanilla |
...

~/code/drupal/bwood/cli/builds/terminus sites create --product=21e1fada-199c-492b-97bd-0b36b53a9da0 --name=t20create-ucb --org=94a63981-a120-4f67-ae63-11547dee8be1 --label=t20create-ucb
PHP Fatal error:  Class 'Self' not found in phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/commands/products.php on line 111
PHP Stack trace:
PHP   1. {main}() /Users/bwood/code/drupal/bwood/cli/builds/terminus:0
PHP   2. include() /Users/bwood/code/drupal/bwood/cli/builds/terminus:4
PHP   3. include() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/boot-phar.php:5
PHP   4. Terminus\Runner->run() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/terminus.php:29
PHP   5. Terminus\Runner->_run_command() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:155
PHP   6. Terminus\Runner->run_command() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:75
PHP   7. Terminus\Dispatcher\Subcommand->invoke() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:68
PHP   8. call_user_func() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP   9. Terminus\Dispatcher\CommandFactory::Terminus\Dispatcher\{closure}() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP  10. call_user_func() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  11. Sites_Command->create() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  12. Products_Command::getById() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/commands/sites.php:78
PHP  13. Products_Command::get() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/commands/products.php:100
PHP  14. Products_Command::instance() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/commands/products.php:72

I get the same results when I try to install other products.

I tried both HEAD and 0.3.1-beta with the same results.

[bwood@mbp bin]$ php --version
PHP 5.4.30 (cli) (built: Jul 29 2014 23:43:29)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

Error in terminus organizations sites

I'm getting the following error when trying to list sites in an organization:

$ terminus organizations sites

  1. UC Berkeley

Choose an organization: 1

Fatal error: Class 'Terminus\Self' not found in phar:///Users/cboyden/Repo/cli/builds/terminus/php/Terminus/User.php on line 23

$ terminus cli version
Terminus 0.3.4-beta

wp db export does not work

This may be a feature request and not an issue. I'm not sure if it is supposed to work at the moment. :)

cal$ terminus wp db export --site=cals-blog
Running drush db export on cals-blog-dev
mysqldump: Can't create/write to file 'pantheon.sql' (Errcode: 13)

Cheers!
=C=

Fix help documentation

On terminus help, "terminus site info" doesn't include the required argument --site= and we you run without it, it throws an error:
Fatal error: Call to a member function info() on a non-object in phar:///usr/local/bin/terminus/php/commands/site.php on line 245

PHP Fatal error:

Just installed for testing and running terminus spits out this error:
PHP Fatal error: Call to undefined method Terminus\Runner::wp_exists() in phar:///usr/local/bin/terminus/php/Terminus/Runner.php on line 147

just figured I'd let y'all know :)

terminus help --all: Show all subcommands

I keep typing multiple `terminus help commands to try to find the subcommand I need. I'm elevating the this comment I made to its own issue for your consideration.

It would be great to have something like terminus help --all which would spit out all commands and subcommands. If there was another switch like --raw (or something) which disabled the system pager (help shows up in less for me) I could do terminus help --all --raw | grep cache and find the command I need.

Low priority bugfix: PHP Notice thrown from prepend.php

$ terminus wp plugin list --site=ari-wp
Running wp plugin list on ari-wp-dev

Notice: Undefined index: SERVER_PORT in /srv/bindings/c38914e40c9544ab9a8e3fdce5621432/includes/prepend.php on line 25

Notice: Undefined index: SERVER_PORT in /srv/bindings/c38914e40c9544ab9a8e3fdce5621432/includes/prepend.php on line 26
tput: No value for $TERM and no -T specified
+----------+----------+--------+---------+
| name | status | update | version |
+----------+----------+--------+---------+
| akismet | inactive | none | 3.0.2 |
| hello | inactive | none | 1.6 |
| pantheon | must-use | none | |
+----------+----------+--------+---------+

Throw error when invalid SSH key is provided

Users can make stupid errors like accidentally deleting their SSH private key. When they do, generate a new SSH key, and forget to update Pantheon, it would be nice if Terminus threw an error or a warning in this situation:

image

You might be able to solve by disabling password auth over SSH too.

Commit log not updated in command response

When I run a terminus site code commit, I don't always see that commit in the log that's output to the terminal.

$ terminus site code commit --env=dev --message='DRUPALOPS-301: Security update to Linkit 2.7' --site=casc1
Commit 1 changes? [y/n] y
Success: Successfully commited.
+---------------------+------------------+-----------------+------------------------------------------+----------------------------------------------------+
| Time                | Author           | Labels          | Hash                                     | Message                                            |
+---------------------+------------------+-----------------+------------------------------------------+----------------------------------------------------+
| 2014-11-19T22:54:23 | Pantheon         | test, live, dev | 2be521e0da49a4a73cbc80c3962bd592df95ac10 | Update to Drupal 7.34. More info: https://www.drup |
| 2014-10-15T18:58:41 | Pantheon         | test, live, dev | d24a179ed808316b4aec568575cb031ab69c0167 | Drupal version 7.32 - a security release that shou |

WP-CLI/Drush Interactive mode

As a Pantheon developer, I don't want to have to include terminus each time I want to use WP-CLI. I'd like to be able to enter an interactive mode where I can run whichever WP-CLI commands I want against my remote environment.

terminus sites delete command-line-test spews

$ terminus sites delete command-line-test
PHP Notice:  Undefined variable: menu in phar:///Users/cal/Projects/Pantheon/cli/bin/terminus/php/commands/sites.php on line 163

Notice: Undefined variable: menu in phar:///Users/cal/Projects/Pantheon/cli/bin/terminus/php/commands/sites.php on line 163

PHP Warning:  array_values() expects parameter 1 to be array, null given in phar:///Users/cal/Projects/Pantheon/cli/bin/terminus/vendor/jlogsdon/cli/lib/cli/Streams.php on line 209

Warning: array_values() expects parameter 1 to be array, null given in phar:///Users/cal/Projects/Pantheon/cli/bin/terminus/vendor/jlogsdon/cli/lib/cli/Streams.php on line 209
PHP Warning:  Invalid argument supplied for foreach() in phar:///Users/cal/Projects/Pantheon/cli/bin/terminus/vendor/jlogsdon/cli/lib/cli/Streams.php on line 215

Warning: Invalid argument supplied for foreach() in phar:///Users/cal/Projects/Pantheon/cli/bin/terminus/vendor/jlogsdon/cli/lib/cli/Streams.php on line 215

Select a site to delete:

Yes, I know that's the wrong format. But it shouldn't spew. :)

Cheers!
=C=

Ability to create annotated git tags?

I noticed the function terminus site code and its support for log, branches, branch-create, diffstat and commit. Is it possible for it to support annotated git tags in the future?

Help for each command should show available arguments

For example this appears to work:

terminus organizations sites --json --nocache --org=e6657950-fbdf-44ae-bde1-8bff77e66f80

while terminus help organizations sites just gives:

NAME

  terminus organizations sites

DESCRIPTION

  List an organizations sites

SYNOPSIS

  terminus organizations sites 

(END) 

Cannot redeclare class Network_Meta_Command

Looks like wp-cli commands are getting blocked.

> terminus wp --site=tuesday-demo --env=dev help Fatal error: Cannot redeclare class Network_Meta_Command in phar:///opt/wp-cli/wp-cli.phar/php/commands/network.php on line 21

'terminus site create' could return the resulting UUID and site name

In terminus 1.0, psite-create returned the UUID and site name. This was really useful in multistep scripts when I wanted to perform further operations on the site I'd just spun up (e.g. add team members). I could do this without making another call to psite-info

// We want the output that comes via STDERR
  $psite_create_cmd = "$drush -y psite-create $cloned_site_name --product=$product_uuid --organization=$organization_uuid --nopoll 2>&1";
  print $psite_create_cmd . "\n";
  exec($psite_create_cmd, $output, $return);
  if ($return !== 0) {
    print "Error: Problem creating target site. Check the following before trying again:\n";
    print "Do you need to use -T? See help (-h)\n";
    print "Have you logged into Terminus?\n";
    print "Does the new site (e.g., sitename-ob) you're trying to create already exist on Pantheon?\n";
    exit(1);
  }

  $target_site_uuid = "";
  foreach ($output as $out) {
    // When we redirect 2>&1 we get separate lines
    // print "output: $out\n";
    // output: Your new site "websolutions-bw15" is now building with UUID
    // output: "a158abab-7614-4b4f-9c7d-0940b21d049b".
    preg_match('/^Your new site "([^\"]+)"/', $out, $matches1);
    preg_match('/^"([a-z0-9-]+)"/', $out, $matches2);
    if (count($matches1) > 1) {
      $target_site_name = $matches1[1];
      print "\nTarget Site name: $target_site_name\n";
      continue;
    }
    if (count($matches2) > 1) {
      $target_site_uuid = $matches2[1];
      print "Target Site UUID: $target_site_uuid\n";
      continue;
    }
  }

We could improve on psite-create in these ways:

  1. Return the data on STDOUT, not STDERR
  2. Support --json to avoid the need for pregs
  3. If returning this data should be optional, a --output switch could be added.

Inconsistent JSON returned for site information

terminus organizations sites --org=[orgid] --json returns

[
   {
        "name": "[name]",
        "service level": "business",
        "framework": "wordpress",
        "created": "2014-11-11 22:34:00"
    },
...

and terminus sites show --json returns

[
    {
        "Site": "[name]",
        "Framwork": "wordpress",
        "Service Level": "business",
        "UUID": "[name]"
    },
...

'terminus site info' would nicer not to require --nocache after site creation

[bwood@mbp ~]$ grep -i version ~/code/drupal/bwood/cli/php/terminus.php
define( 'TERMINUS_VERSION', '0.3.2-beta');
[bwood@mbp ~]$ terminus sites create --product=21e1fada-199c-492b-97bd-0b36b53a9da0 --name=ob7-t032b-01 --label=ob7-t032b-01 --org=430c1947-354f-459a-8755-f38293aef105
Creating new Drupal 7 installation ...
Working .............................
Success: Pow! You created a new site!

I need the site uuid...

[bwood@mbp ~]$ terminus site info --site=ob7-t032b-01
Error: Exception thrown - No site exists with this name

What...? Oh maybe I need:

[bwood@mbp ~]$ terminus site info --site=ob7-t032b-01 --nocache
+----------------+---------------------------------------------------------------------------------------------+
|
+----------------+---------------------------------------------------------------------------------------------+
| holder_id      | a5814357-ecde-46aa-af6e-82336848c660                                                        |
| name           | ob7-t032b-01                                                                                |
| created        | 1421887803                                                                                  |
| framework      | drupal                                                                                      |
| holder_type    | user                                                                                        |
| service_level  | free                                                                                        |
| purchase_date  | 1421887803                                                                                  |
| upstream       | git://github.com/pantheon-systems/drops-7.git, 21e1fada-199c-492b-97bd-0b36b53a9da0, master |
| owner          | a5814357-ecde-46aa-af6e-82336848c660                                                        |
| last_code_push | 2015-01-22T00:50:25,                                                                        |
| preferred_zone | chios                                                                                       |
| id             | 673f2411-8107-4f70-8b11-2edcabefe60c                                                        |
+----------------+---------------------------------------------------------------------------------------------+

Some people might not think to try --nocache. If it's got to be required, it would help to output a message about this in the 'sites create' output.

Drush!=wp-cli

When I run:
terminus wp plugin list --site=cals-blog

The first line is:
Running drush plugin list on cals-blog-dev

wp-cli!=drush :)

=C=

`terminus site team add` should add team member to site

$ terminus site team list --site=test
+-------+------+---------------------+--------------------------------------+
| First | Last | Email | UUID |
+-------+------+---------------------+--------------------------------------+
| Test | Example | [email protected] | 8562d806-78cb-458f-ad3b-c874447cadfd |
+-------+------+---------------------+--------------------------------------+
$ terminus site team add --site=test --member=[email protected]
$ terminus site team list --site=test
+-------+------+---------------------+--------------------------------------+
| First | Last | Email | UUID |
+-------+------+---------------------+--------------------------------------+
| Test | Example | [email protected] | 8562d806-78cb-458f-ad3b-c874447cadfd |
+-------+------+---------------------+--------------------------------------+
$ terminus cli info
PHP binary: /usr/bin/php
PHP version: 5.5.14
php.ini used: /etc/php.ini
Terminus root dir: phar://terminus.phar
Terminus global config:
Terminus project config:
Terminus version: 0.3.0-beta

Backups not downloading.

When trying to get a download url the API returns

Error: <html><head><title>Processing Failed</title></head><body><b>Processing Failed</b></body></html>

Need to investigate what changed in the API and what the solution is.

Error getting backups when none available

PHP Notice:  Undefined property: stdClass::$folder in /home/vagrant/cli/php/commands/site.php on line 327

  1. files.tar.gz

Select backup: 1
Error:
<html>
  <head><title>405 - Method Not Allowed</title></head>
  <body>
    <h1>Method Not Allowed</h1>
    <p>Your browser approached me (at /sites/5e00a61e-bc32-4ecb-8fab-2c3446e85253/environments/dev/backups/catalog//files/s3token) with the method "POST".  I only allow the methods PUT, HEAD, DESCRIBE, GET here.</p>
  </body>
</html>

Call to undefined method Site_Command:getSiteId()

I'm running a build off of the master branch, here. If I try and run:

terminus site clone-env --site=my-site-name --from-env=test --to-env=terminus --db --files

I get the following PHP fatal error:

Call to undefined method Site_Command::getSiteId() in phar:///Path/to/terminus/builds/terminus/php/commands/site.php on line 435

terminus site create: Sporadic failures. "Not Found" and "Bad Gateway"

This is probably an infrastructure problem, but not sure where to report it. Can you pass it along as appropriate?

While scripting terminus sites create commands I'm getting about 2 failures for each 6 site creation attempts:

terminus sites create --product=87774fa4-b570-4300-a693-1c98b61457cd --name=webaccess-t20-bw06 --label=webaccess-t20-bw06 --org=430c1947-354f-459a-8755-f38293aef105
Error: <html>
<head><title>502 Bad Gateway</title></head>
<body bgcolor="white">
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx</center>
</body>
</html>

I did get the access granted email containing: https://dashboard.getpantheon.com/sites/313d09e8-e105-4112-88fa-e3ed0d643e38

Earlier I saw this one:

terminus sites create --product=87774fa4-b570-4300-a693-1c98b61457cd --name=webaccess-t20-bw01 --label=webaccess-t20-bw01 --org=430c1947-354f-459a-8755-f38293aef105
Error: Not found.

https://dashboard.getpantheon.com/sites/48110d9a-a0a2-4f58-9449-863cc82a8b30

terminus site organization add: fatal error. Help text --org inconsistent.

[bwood@mbp ~]$ grep -i version ~/code/drupal/bwood/cli/php/terminus.php
define( 'TERMINUS_VERSION', '0.3.2-beta');

Do some commands take the org UUID and other the org name?

terminus help sites create
...
   [--org=<org>]
    : UUID of organization to add this site to
...
terminus help site organizations list
...
 [--org=<org>]
    Organization name
...

It would be nice if those could be consistent.

Try to add an org to a site with org NAME:

[bwood@mbp ~]$ terminus site organizations add --site=ob7-t032b-01 --org="UC Berkeley"
PHP Notice:  Undefined index: key in phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Helpers/Input.php on line 38
PHP Stack trace:
PHP   1. {main}() /Users/bwood/code/drupal/bwood/cli/builds/terminus:0
PHP   2. include() /Users/bwood/code/drupal/bwood/cli/builds/terminus:4
PHP   3. include() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/boot-phar.php:5
PHP   4. Terminus\Runner->run() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/terminus.php:29
PHP   5. Terminus\Runner->_run_command() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:155
PHP   6. Terminus\Runner->run_command($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:75
PHP   7. Terminus\Dispatcher\Subcommand->invoke($args = *uninitialized*, $assoc_args = *uninitialized*, $extra_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:68
PHP   8. call_user_func(*uninitialized*, *uninitialized*, *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP   9. Terminus\Dispatcher\CommandFactory::Terminus\Dispatcher\{closure}($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP  10. call_user_func(*uninitialized*, *uninitialized*, *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  11. Site_Command->organizations($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  12. Terminus\Helpers\Input::orgname($args = *uninitialized*, $key = *uninitialized*, $default = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/commands/site.php:306
PHP Fatal error:  Class 'Terminus\SiteWorkflow' not found in phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Site.php on line 328
PHP Stack trace:
PHP   1. {main}() /Users/bwood/code/drupal/bwood/cli/builds/terminus:0
PHP   2. include() /Users/bwood/code/drupal/bwood/cli/builds/terminus:4
PHP   3. include() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/boot-phar.php:5
PHP   4. Terminus\Runner->run() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/terminus.php:29
PHP   5. Terminus\Runner->_run_command() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:155
PHP   6. Terminus\Runner->run_command($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:75
PHP   7. Terminus\Dispatcher\Subcommand->invoke($args = *uninitialized*, $assoc_args = *uninitialized*, $extra_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:68
PHP   8. call_user_func(*uninitialized*, *uninitialized*, *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP   9. Terminus\Dispatcher\CommandFactory::Terminus\Dispatcher\{closure}($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP  10. call_user_func(*uninitialized*, *uninitialized*, *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  11. Site_Command->organizations($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  12. Terminus\Site->addMembership($type = *uninitialized*, $name = *uninitialized*, $role = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/commands/site.php:307
[bwood@mbp ~]$ terminus site organizations add --site=ob7-t032b-01 --org=94a63981-a120-4f67-ae63-11547dee8be1

Try to add an org to a site with org UUID:

[bwood@mbp ~]$ terminus site organizations add --site=ob7-t032b-01 --org=94a63981-a120-4f67-ae63-11547dee8be1
PHP Notice:  Undefined index: key in phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Helpers/Input.php on line 38
PHP Stack trace:
PHP   1. {main}() /Users/bwood/code/drupal/bwood/cli/builds/terminus:0
PHP   2. include() /Users/bwood/code/drupal/bwood/cli/builds/terminus:4
PHP   3. include() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/boot-phar.php:5
PHP   4. Terminus\Runner->run() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/terminus.php:29
PHP   5. Terminus\Runner->_run_command() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:155
PHP   6. Terminus\Runner->run_command($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:75
PHP   7. Terminus\Dispatcher\Subcommand->invoke($args = *uninitialized*, $assoc_args = *uninitialized*, $extra_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:68
PHP   8. call_user_func(*uninitialized*, *uninitialized*, *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP   9. Terminus\Dispatcher\CommandFactory::Terminus\Dispatcher\{closure}($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP  10. call_user_func(*uninitialized*, *uninitialized*, *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  11. Site_Command->organizations($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  12. Terminus\Helpers\Input::orgname($args = *uninitialized*, $key = *uninitialized*, $default = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/commands/site.php:306
PHP Fatal error:  Class 'Terminus\SiteWorkflow' not found in phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Site.php on line 328
PHP Stack trace:
PHP   1. {main}() /Users/bwood/code/drupal/bwood/cli/builds/terminus:0
PHP   2. include() /Users/bwood/code/drupal/bwood/cli/builds/terminus:4
PHP   3. include() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/boot-phar.php:5
PHP   4. Terminus\Runner->run() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/terminus.php:29
PHP   5. Terminus\Runner->_run_command() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:155
PHP   6. Terminus\Runner->run_command($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:75
PHP   7. Terminus\Dispatcher\Subcommand->invoke($args = *uninitialized*, $assoc_args = *uninitialized*, $extra_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:68
PHP   8. call_user_func(*uninitialized*, *uninitialized*, *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP   9. Terminus\Dispatcher\CommandFactory::Terminus\Dispatcher\{closure}($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP  10. call_user_func(*uninitialized*, *uninitialized*, *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  11. Site_Command->organizations($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  12. Terminus\Site->addMembership($type = *uninitialized*, $name = *uninitialized*, $role = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/commands/site.php:307

Try to select an org:

[bwood@mbp ~]$ terminus site organizations add --site=ob7-t032b-01

  1. None
  2. UC Berkeley - Testing
  3. UC Berkeley
  4. Drupal Distribution Testing

Choose organization: 3
PHP Fatal error:  Class 'Terminus\SiteWorkflow' not found in phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Site.php on line 328
PHP Stack trace:
PHP   1. {main}() /Users/bwood/code/drupal/bwood/cli/builds/terminus:0
PHP   2. include() /Users/bwood/code/drupal/bwood/cli/builds/terminus:4
PHP   3. include() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/boot-phar.php:5
PHP   4. Terminus\Runner->run() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/terminus.php:29
PHP   5. Terminus\Runner->_run_command() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:155
PHP   6. Terminus\Runner->run_command($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:75
PHP   7. Terminus\Dispatcher\Subcommand->invoke($args = *uninitialized*, $assoc_args = *uninitialized*, $extra_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:68
PHP   8. call_user_func(*uninitialized*, *uninitialized*, *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP   9. Terminus\Dispatcher\CommandFactory::Terminus\Dispatcher\{closure}($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP  10. call_user_func(*uninitialized*, *uninitialized*, *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  11. Site_Command->organizations($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  12. Terminus\Site->addMembership($type = *uninitialized*, $name = *uninitialized*, $role = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/commands/site.php:307

Undefined property: stdClass::$update_log with `terminus site upstream_updates`

$ terminus site upstream_updates --site=XXXXX
+-------------+-------------------+
| Environment | Status            |
+-------------+-------------------+
| dev         | Updates Available |
+-------------+-------------------+
Success: No updates to show
PHP Notice:  Undefined property: stdClass::$update_log in phar:///usr/local/bin/terminus/php/commands/site.php on line 1146
PHP Stack trace:
PHP   1. {main}() /usr/local/bin/terminus:0
PHP   2. include() /usr/local/bin/terminus:4
PHP   3. include() phar:///usr/local/bin/terminus/php/boot-phar.php:5
PHP   4. Terminus\Runner->run() phar:///usr/local/bin/terminus/php/terminus.php:29
PHP   5. Terminus\Runner->_run_command() phar:///usr/local/bin/terminus/php/Terminus/Runner.php:155
PHP   6. Terminus\Runner->run_command() phar:///usr/local/bin/terminus/php/Terminus/Runner.php:75
PHP   7. Terminus\Dispatcher\Subcommand->invoke() phar:///usr/local/bin/terminus/php/Terminus/Runner.php:68
PHP   8. call_user_func() phar:///usr/local/bin/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP   9. Terminus\Dispatcher\{closure}() phar:///usr/local/bin/terminus/php/Terminus/Dispatcher/Subcommand.php:0
PHP  10. call_user_func() phar:///usr/local/bin/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  11. Site_Command->upstream_updates() phar:///usr/local/bin/terminus/php/Terminus/Dispatcher/CommandFactory.php:0

I called it with and without the --update flag, and as both terminus site upstream_udates and terminus site upstream-updates.

Parse error: syntax error, unexpected '@'

I was excited about Terminus 2.0, so I tried downloading it as per the Basic Installation. When I ran it, I got a syntax error.

I'm running PHP 5.4.30.

$ cd ~/Downloads
$ curl -L -O https://github.com/pantheon-systems/cli/releases/download/0.1.0-beta/terminus.phar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   392    0   392    0     0   1285      0 --:--:-- --:--:-- --:--:--  1593
100 2005k  100 2005k    0     0   459k      0  0:00:04  0:00:04 --:--:--  632k
$ head -n1 terminus.phar
#!/usr/bin/env php
$ /usr/bin/env php --version
PHP 5.4.30 (cli) (built: Jul 25 2014 16:59:41) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
    with Xdebug v2.2.4, Copyright (c) 2002-2014, by Derick Rethans
$ chmod u+x ./terminus.phar 
$ ./terminus.phar

Parse error: syntax error, unexpected '@' in phar:///Users/mparker17/Downloads/terminus.phar/php/commands/organizations.php on line 55

Call Stack:
    0.0240     464024   1. {main}() /Users/mparker17/Downloads/terminus.phar:0
    0.0242     457504   2. include('phar:///Users/mparker17/Downloads/terminus.phar/php/boot-phar.php') /Users/mparker17/Downloads/terminus.phar:4
    0.0245     467248   3. include('phar:///Users/mparker17/Downloads/terminus.phar/php/terminus.php') phar:///Users/mparker17/Downloads/terminus.phar/php/boot-phar.php:5
    0.0360    1247184   4. Terminus\Runner->run() phar:///Users/mparker17/Downloads/terminus.phar/php/terminus.php:29
    0.0440    1513424   5. Terminus\Runner->_run_command() phar:///Users/mparker17/Downloads/terminus.phar/php/Terminus/Runner.php:155
    0.0440    1513488   6. Terminus\Runner->run_command() phar:///Users/mparker17/Downloads/terminus.phar/php/Terminus/Runner.php:75
    0.0441    1514920   7. Terminus\Dispatcher\Subcommand->invoke() phar:///Users/mparker17/Downloads/terminus.phar/php/Terminus/Runner.php:68
    0.0465    1567632   8. call_user_func:{phar:///Users/mparker17/Downloads/terminus.phar/php/Terminus/Dispatcher/Subcommand.php:220}() phar:///Users/mparker17/Downloads/terminus.phar/php/Terminus/Dispatcher/Subcommand.php:220
    0.0465    1567664   9. Terminus\Dispatcher\CommandFactory::Terminus\Dispatcher\{closure}() phar:///Users/mparker17/Downloads/terminus.phar/php/Terminus/Dispatcher/Subcommand.php:220
    0.0473    1587720  10. call_user_func:{phar:///Users/mparker17/Downloads/terminus.phar/php/Terminus/Dispatcher/CommandFactory.php:35}() phar:///Users/mparker17/Downloads/terminus.phar/php/Terminus/Dispatcher/CommandFactory.php:35
    0.0473    1587752  11. Help_Command->__invoke() phar:///Users/mparker17/Downloads/terminus.phar/php/Terminus/Dispatcher/CommandFactory.php:35
    0.0473    1587944  12. Help_Command::show_help() phar:///Users/mparker17/Downloads/terminus.phar/php/commands/help.php:27
    0.0473    1588056  13. Help_Command::get_initial_markdown() phar:///Users/mparker17/Downloads/terminus.phar/php/commands/help.php:49
    0.0474    1588912  14. Help_Command::render_subcommands() phar:///Users/mparker17/Downloads/terminus.phar/php/commands/help.php:112
    0.0474    1589144  15. Terminus\Dispatcher\RootCommand->get_subcommands() phar:///Users/mparker17/Downloads/terminus.phar/php/commands/help.php:120
    0.0474    1589184  16. Terminus\Utils\load_all_commands() phar:///Users/mparker17/Downloads/terminus.phar/php/Terminus/Dispatcher/RootCommand.php:60

$ echo $?
255

terminus help throws an error.

cal$ terminus help
PHP Fatal error: Call to undefined method Terminus\Runner::wp_exists() in phar:///usr/local/bin/terminus/php/Terminus/Runner.php on line 147

Was trying to find the version command so I can check what version I have. I can't because it throws an error.

Cheers!
=C=

set connection mode returns no valuable information

terminus site connection-mode --site=sitename --env=dev --set=sftp

This command does not return anything of value. Whether it is successful or not, it returns a table of data about the site. The connection mode is not listed in this table.

Failure does not return a failure or a reason. It returns the same table.

I suggest that the command should return a 0 on failure or a 1 on success unless a verbose flag has been set. In the case of verbose, it should return the same thing that this command does.

terminus site connection-mode --site=sitename --env=dev 

Specifically:

Connection mode: Git

Cheers!
=C=

Provide a way to refresh your drush aliases

I don't see a way of refreshing your pantheon.aliases.drushrc.php. In the old days I used drush paliases all the time--but for the last 4-6 months I stopped using it because it takes way too long and it flat out fails leaving me with an empty pantheon.aliases.drushrc.php about 70% of the time. (The problem might be that we are team members of too many sites--the rest of the UC Berkeley admins all experience these problems with paliases too.)

'terminus site organizations list' doesn't list organizaitons

[bwood@mbp ~]$ grep -i version ~/code/drupal/bwood/cli/php/terminus.php
define( 'TERMINUS_VERSION', '0.3.2-beta');

With what org is this site associated?

[bwood@mbp ~]$ terminus site organizations list --site=ob7-t032b-01

  1. None
  2. UC Berkeley - Testing
  3. UC Berkeley
  4. Drupal Distribution Testing

Choose organization:

If you simply hit Enter at that prompt you get a fatal error:

[bwood@mbp ~]$ terminus site organizations list --site=ob7-t032b-01

  1. None
  2. UC Berkeley - Testing
  3. UC Berkeley
  4. Drupal Distribution Testing

Choose organization:
PHP Notice:  Undefined offset: 0 in phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Helpers/Input.php on line 43
PHP Stack trace:
PHP   1. {main}() /Users/bwood/code/drupal/bwood/cli/builds/terminus:0
PHP   2. include() /Users/bwood/code/drupal/bwood/cli/builds/terminus:4
PHP   3. include() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/boot-phar.php:5
PHP   4. Terminus\Runner->run() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/terminus.php:29
PHP   5. Terminus\Runner->_run_command() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:155
PHP   6. Terminus\Runner->run_command($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:75
PHP   7. Terminus\Dispatcher\Subcommand->invoke($args = *uninitialized*, $assoc_args = *uninitialized*, $extra_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:68
PHP   8. call_user_func(*uninitialized*, *uninitialized*, *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP   9. Terminus\Dispatcher\CommandFactory::Terminus\Dispatcher\{closure}($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP  10. call_user_func(*uninitialized*, *uninitialized*, *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  11. Site_Command->organizations($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  12. Terminus\Helpers\Input::orgname($args = *uninitialized*, $key = *uninitialized*, $default = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/commands/site.php:306
PHP Fatal error:  Class 'Terminus\SiteWorkflow' not found in phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Site.php on line 328
PHP Stack trace:
PHP   1. {main}() /Users/bwood/code/drupal/bwood/cli/builds/terminus:0
PHP   2. include() /Users/bwood/code/drupal/bwood/cli/builds/terminus:4
PHP   3. include() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/boot-phar.php:5
PHP   4. Terminus\Runner->run() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/terminus.php:29
PHP   5. Terminus\Runner->_run_command() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:155
PHP   6. Terminus\Runner->run_command($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:75
PHP   7. Terminus\Dispatcher\Subcommand->invoke($args = *uninitialized*, $assoc_args = *uninitialized*, $extra_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:68
PHP   8. call_user_func(*uninitialized*, *uninitialized*, *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP   9. Terminus\Dispatcher\CommandFactory::Terminus\Dispatcher\{closure}($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP  10. call_user_func(*uninitialized*, *uninitialized*, *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  11. Site_Command->organizations($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  12. Terminus\Site->addMembership($type = *uninitialized*, $name = *uninitialized*, $role = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/commands/site.php:307

If you choose an org, you get a different error:

[bwood@mbp ~]$ terminus site organizations list --site=ob7-t032b-01

  1. None
  2. UC Berkeley - Testing
  3. UC Berkeley
  4. Drupal Distribution Testing

Choose organization: 2
PHP Fatal error:  Class 'Terminus\SiteWorkflow' not found in phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Site.php on line 328
PHP Stack trace:
PHP   1. {main}() /Users/bwood/code/drupal/bwood/cli/builds/terminus:0
PHP   2. include() /Users/bwood/code/drupal/bwood/cli/builds/terminus:4
PHP   3. include() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/boot-phar.php:5
PHP   4. Terminus\Runner->run() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/terminus.php:29
PHP   5. Terminus\Runner->_run_command() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:155
PHP   6. Terminus\Runner->run_command($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:75
PHP   7. Terminus\Dispatcher\Subcommand->invoke($args = *uninitialized*, $assoc_args = *uninitialized*, $extra_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:68
PHP   8. call_user_func(*uninitialized*, *uninitialized*, *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP   9. Terminus\Dispatcher\CommandFactory::Terminus\Dispatcher\{closure}($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP  10. call_user_func(*uninitialized*, *uninitialized*, *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  11. Site_Command->organizations($args = *uninitialized*, $assoc_args = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  12. Terminus\Site->addMembership($type = *uninitialized*, $name = *uninitialized*, $role = *uninitialized*) phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/commands/site.php:307

json output contains double-quoted single-quoted strings like "'UC Berkeley - Testing'"

[bwood@mbp utility]$ terminus cli version
Terminus 0.3.4-beta

It would help to remove the single quotes--or escape them if there is some reason they should be preserved.

One place I see this is organizations list

[bwood@mbp utility]$ terminus --json site organizations list --site=webaccess-t20-bw07
[
    {
        "label": "'UC Berkeley - Testing'",
        "name": "uc-berkeley-testing",
        "role": "team_member",
        "id": "430c1947-354f-459a-8755-f38293aef105"
    }
]

Here's a workaround to prevent json_decode() from choking on the "label" value:

exec($terminus_site_organizations_list_cmd, $output, $return);
$site_orgs = json_decode(str_replace("'", "", $output[0]), TRUE);

Interactively gather site argument

In the old Terminus we had a way of running more interactively to pick up common args like site and env. This used the local data cache to quiz the user for the value if a required one was not provided.

While I don't think there's a built in "pick a value from this list" thing in our current framework, and I don't want to copy the old code, but from a DX perspective I miss this. It's probably worth trying to add so that people can discover the power of Terminus in a more exploratory mode.

https://github.com/pantheon-systems/terminus/blob/master/terminus.drush.inc#L4139

Original arguments handled:

  • site
  • env
  • organization
  • product
  • team member
  • service-level
  • branch
  • element (of a backup)
  • bucket (for a backup)

terminus site create: Call to undefined method Products_Command::getById(). Also, permission to install product is not granted.

In reference to issue #45. I saw this PR #45 so I tested and hit a new error:

First, my terminus version:

[bwood@mbp ~]$ terminus cli version
Terminus 0.3.1-beta

(I pulled the latest code from [email protected]:pantheon-systems/cli.git master at about 15:00PDT)

[bwood@mbp ~]$ terminus sites create --product=87774fa4-b570-4300-a693-1c98b61457cd --name=t20create-ucb-ob7 --org=94a63981-a120-4f67-ae63-11547dee8be1 --label=t20create-ucb
PHP Fatal error:  Call to undefined method Products_Command::getById() in phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/commands/sites.php on line 78
PHP Stack trace:
PHP   1. {main}() /Users/bwood/code/drupal/bwood/cli/builds/terminus:0
PHP   2. include() /Users/bwood/code/drupal/bwood/cli/builds/terminus:4
PHP   3. include() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/boot-phar.php:5
PHP   4. Terminus\Runner->run() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/terminus.php:29
PHP   5. Terminus\Runner->_run_command() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:155
PHP   6. Terminus\Runner->run_command() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:75
PHP   7. Terminus\Dispatcher\Subcommand->invoke() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Runner.php:68
PHP   8. call_user_func() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP   9. Terminus\Dispatcher\CommandFactory::Terminus\Dispatcher\{closure}() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/Subcommand.php:220
PHP  10. call_user_func() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35
PHP  11. Sites_Command->create() phar:///Users/bwood/code/drupal/bwood/cli/builds/terminus/php/Terminus/Dispatcher/CommandFactory.php:35

I corrected this error with the following:

diff --git a/php/commands/sites.php b/php/commands/sites.php
index ae8bd63..72eff3d 100755
--- a/php/commands/sites.php
+++ b/php/commands/sites.php
@@ -75,10 +75,10 @@ class Sites_Command extends Terminus_Command {
     }
     require_once __DIR__.'/products.php';
     if (isset($assoc_args['product'])) {
-      $product = Products_Command::getById($assoc_args['product']);
+      $product = Products::getById($assoc_args['product']);
     } else {
       $product = Terminus::menu( Products_Command::selectList() );
-      $product = Products_Command::getByIndex($product);
+      $product = Products::getByIndex($product);
     }
     Terminus::line( sprintf( "Creating new %s installation ... ", $product['longname'] ) );
     $data['product'] = $product['id'];

Now terminus sites create works, however it does not address the problem with product/organization permissions that I've described in Pantheon issue 30469:

[bwood@mbp ~]$ terminus sites create --product=87774fa4-b570-4300-a693-1c98b61457cd --name=t20create-ucb-ob7 --org=94a63981-a120-4f67-ae63-11547dee8be1 --label=t20create-ucb
Creating new Open Berkeley 7 installation ...
Error: "Error: Product cannot be used outside                                               organizational context.\n"

Terminus\Loggers\Self not found

Using the latest released phar file runnign many commands I'm running into:

Fatal error: Class 'Terminus\Loggers\Self' not found in phar:///Users/joshk/Downloads/terminus/php/Terminus/Loggers/Regular.php on line 55

terminus wp core update throws errors and then fails.

Trying to run the latest version to update WordPress's core to the latest Beta. It failed.

I'm pretty sure the Invalid Argument errors are not related to the update.

Cheers!
=C=

cal$ terminus wp core update --version=3.9-beta3 --site=cals-blog
Running wp core update --version=3.9-beta3 on cals-blog-dev
Warning: Invalid argument supplied for foreach() in /srv/bindings/de25b6e250a141df88b042f0f920e54c/code/wp-includes/plugin.php on line 620
Warning: Invalid argument supplied for foreach() in /srv/bindings/de25b6e250a141df88b042f0f920e54c/code/wp-includes/plugin.php on line 620
Warning: Invalid argument supplied for foreach() in /srv/bindings/de25b6e250a141df88b042f0f920e54c/code/wp-includes/plugin.php on line 620
Warning: Invalid argument supplied for foreach() in /srv/bindings/de25b6e250a141df88b042f0f920e54c/code/wp-includes/plugin.php on line 620
Warning: Invalid argument supplied for foreach() in /srv/bindings/de25b6e250a141df88b042f0f920e54c/code/wp-includes/plugin.php on line 620
Warning: Invalid argument supplied for foreach() in /srv/bindings/de25b6e250a141df88b042f0f920e54c/code/wp-includes/plugin.php on line 620
Warning: Invalid argument supplied for foreach() in /srv/bindings/de25b6e250a141df88b042f0f920e54c/code/wp-includes/plugin.php on line 620
Warning: Invalid argument supplied for foreach() in /srv/bindings/de25b6e250a141df88b042f0f920e54c/code/wp-includes/plugin.php on line 620
Downloading WordPress 3.9-beta3 (en_US)...
Downloading update from https://wordpress.org/wordpress-3.9-beta3.zip...
Unpacking the update...
Error: Could not create directory.

'terminus cli cache-clear' appears to log me out

[bwood@mbp migration]$ terminus cli version
Terminus 0.3.4-beta

Test 1:

[bwood@mbp migration]$ terminus auth login
Your email address?: [email protected]
Your dashboard password (input will not be shown):
Logging in as [email protected]
Saving session data

        .+.
        .+?:
         .+??.
           ??? .
           +???.
      +?????????=.
      .???????????.
      .????????????.

     ########### ########
     ############.#######.
     ####### ####  .......
     ######## #### #######                50 41 4E 54 48 45 4F 4E
     #########.####.######        _____________  __  ________  ____  ______
     ######  ...                 /_  __/ __/ _ \/  |/  /  _/ |/ / / / / __/
     #######.??.##########        / / / _// , _/ /|_/ // //    / /_/ /\ \
     #######~+??.#########       /_/ /___/_/|_/_/  /_/___/_/|_/\____/___/
     ########.??..
     #########.??.#######.
     #########.+?? ######.
               .+?.
         .????????????.
           +??????????,
            .????++++++.
              ????.
              .???,
               .~??.
                 .??
                  .?,.
[bwood@mbp migration]$ terminus cli cache-clear
[bwood@mbp migration]$ terminus --json site organizations list --site=openberkeley-t02-0127-bw01
Error: Please login first with `terminus auth login`

Test 2:

[bwood@mbp migration]$ terminus auth login
Your email address?: [email protected]
Your dashboard password (input will not be shown):
Logging in as [email protected]
Saving session data

        .+.
        .+?:
         .+??.
           ??? .
           +???.
      +?????????=.
      .???????????.
      .????????????.

     ########### ########
     ############.#######.
     ####### ####  .......
     ######## #### #######                50 41 4E 54 48 45 4F 4E
     #########.####.######        _____________  __  ________  ____  ______
     ######  ...                 /_  __/ __/ _ \/  |/  /  _/ |/ / / / / __/
     #######.??.##########        / / / _// , _/ /|_/ // //    / /_/ /\ \
     #######~+??.#########       /_/ /___/_/|_/_/  /_/___/_/|_/\____/___/
     ########.??..
     #########.??.#######.
     #########.+?? ######.
               .+?.
         .????????????.
           +??????????,
            .????++++++.
              ????.
              .???,
               .~??.
                 .??
                  .?,.
[bwood@mbp migration]$ terminus --json site organizations list --site=openberkeley-t02-0127-bw
[
    {
        "label": "'UC Berkeley - Testing'",
        "name": "uc-berkeley-testing",
        "role": "team_member",
        "id": "430c1947-354f-459a-8755-f38293aef105"
    }
]
[bwood@mbp migration]$ terminus cli cache-clear
[bwood@mbp migration]$ terminus --json site organizations list --site=openberkeley-t02-0127-bw
Error: Please login first with `terminus auth login`

Errors thrown when not a member of a site

e.g.

$ terminus wp db query --site=site_I_am_not_a_team_member_of --env=live < show-tables.sql

Fatal error: Uncaught exception 'Exception' with message 'No site exists with this name' in phar:///usr/local/bin/terminus/php/Terminus/SiteFactory.php:46
Stack trace:
#0 phar:///usr/local/bin/terminus/php/Terminus/SiteFactory.php(38): Terminus\SiteFactory->getSite('site_I_am_not_a...')
#1 phar:///usr/local/bin/terminus/php/commands/wp.php(36): Terminus\SiteFactory::instance('site_I_am_not_a...')
#2 [internal function]: WPCLI_Command->__invoke(Array, Array)
#3 phar:///usr/local/bin/terminus/php/Terminus/Dispatcher/CommandFactory.php(35): call_user_func(Array, Array, Array)
#4 [internal function]: Terminus\Dispatcher\CommandFactory::Terminus\Dispatcher{closure}(Array, Array)
#5 phar:///usr/local/bin/terminus/php/Terminus/Dispatcher/Subcommand.php(220): call_user_func(Object(Closure), Array, Array)
#6 phar:///usr/local/bin/terminus/php/Terminus/Runner.php(68): Terminus\Dispatcher\Subcommand->invoke(Array, Array, Array)
#7 phar:///usr/local/bin/terminus/php/Terminus/Runner.php(75): Terminus\Runner->run_command(Array, Array) in phar:///usr/local/bin/terminus/php/Terminus/SiteFactory.php on line 46

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.