commit platformsh-cli for openSUSE:Factory
Hello community, here is the log from the commit of package platformsh-cli for openSUSE:Factory checked in at 2018-01-31 19:53:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/platformsh-cli (Old) and /work/SRC/openSUSE:Factory/.platformsh-cli.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "platformsh-cli" Wed Jan 31 19:53:17 2018 rev:34 rq:571273 version:3.28.0 Changes: -------- --- /work/SRC/openSUSE:Factory/platformsh-cli/platformsh-cli.changes 2018-01-24 15:32:19.389258493 +0100 +++ /work/SRC/openSUSE:Factory/.platformsh-cli.new/platformsh-cli.changes 2018-01-31 19:53:45.016291392 +0100 @@ -1,0 +2,17 @@ +Wed Jan 31 03:51:19 UTC 2018 - jimmy@boombatower.com + +- Update to version 3.28.0: + * Update manifest for rebuild of v3.28.0 + * Release v3.28.0 + * Update dependencies (mainly Symfony 3.4.2 -> 3.4.4) + * Add activity state in log + * Fix inverted requirement of -e/-a in activity:list and activity:log + * Add activity duration and simplify log output + * Add activity:get command + * Add --date-fmt option to `activity:list` and `snapshot:list`. + * Respect date.timezone and allow TZ env var + * Fix existing aliases being prefixed with "@" (#679) + * Avoid fatal if an InvalidConfigException is encountered during updateDrushAliases() + * Use -t instead of RequestTty, for OpenSSH <5.9 + +------------------------------------------------------------------- Old: ---- platformsh-cli-3.27.2.tar.xz New: ---- platformsh-cli-3.28.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ platformsh-cli.spec ++++++ --- /var/tmp/diff_new_pack.vNCo2R/_old 2018-01-31 19:53:46.228235031 +0100 +++ /var/tmp/diff_new_pack.vNCo2R/_new 2018-01-31 19:53:46.232234845 +0100 @@ -17,7 +17,7 @@ Name: platformsh-cli -Version: 3.27.2 +Version: 3.28.0 Release: 0 Summary: Tool for managing Platform.sh services from the command line # See licenses.txt for dependency licenses. ++++++ _service ++++++ --- /var/tmp/diff_new_pack.vNCo2R/_old 2018-01-31 19:53:46.268233171 +0100 +++ /var/tmp/diff_new_pack.vNCo2R/_new 2018-01-31 19:53:46.268233171 +0100 @@ -2,7 +2,7 @@ <service name="tar_scm" mode="disabled"> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> - <param name="revision">refs/tags/v3.27.2</param> + <param name="revision">refs/tags/v3.28.0</param> <param name="url">git://github.com/platformsh/platformsh-cli.git</param> <param name="scm">git</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.vNCo2R/_old 2018-01-31 19:53:46.304231497 +0100 +++ /var/tmp/diff_new_pack.vNCo2R/_new 2018-01-31 19:53:46.308231311 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">git://github.com/platformsh/platformsh-cli.git</param> - <param name="changesrevision">52ea816bec0b04d68feeac9109cf3a1e0d551364</param> + <param name="changesrevision">c6a6802cd9b738a9a3234fe32e4476c74ba98c6c</param> </service> </servicedata> ++++++ licenses.txt ++++++ --- /var/tmp/diff_new_pack.vNCo2R/_old 2018-01-31 19:53:46.372228335 +0100 +++ /var/tmp/diff_new_pack.vNCo2R/_new 2018-01-31 19:53:46.376228149 +0100 @@ -10,25 +10,25 @@ doctrine/cache v1.6.2 MIT firebase/php-jwt v2.2.0 BSD-3-Clause guzzlehttp/cache-subscriber 0.1.0 MIT -guzzlehttp/guzzle 5.3.1 MIT +guzzlehttp/guzzle 5.3.2 MIT guzzlehttp/ringphp 1.1.0 MIT guzzlehttp/streams 3.0.0 MIT padraic/humbug_get_contents 1.0.4 BSD-3-Clause padraic/phar-updater 1.0.4 BSD-3-Clause paragonie/random_compat v2.0.11 MIT -platformsh/client v0.14.0 MIT +platformsh/client v0.14.1 MIT platformsh/console-form v0.0.15 MIT psr/container 1.0.0 MIT psr/log 1.0.2 MIT react/promise v2.5.1 MIT stecman/symfony-console-completion 0.7.0 MIT -symfony/config v3.4.2 MIT -symfony/console v3.4.2 MIT -symfony/debug v3.4.2 MIT -symfony/dependency-injection v3.4.2 MIT -symfony/event-dispatcher v3.4.2 MIT -symfony/filesystem v3.4.2 MIT -symfony/finder v3.4.2 MIT +symfony/config v3.4.4 MIT +symfony/console v3.4.4 MIT +symfony/debug v3.4.4 MIT +symfony/dependency-injection v3.4.4 MIT +symfony/event-dispatcher v3.4.4 MIT +symfony/filesystem v3.4.4 MIT +symfony/finder v3.4.4 MIT symfony/polyfill-mbstring v1.6.0 MIT -symfony/process v3.4.2 MIT -symfony/yaml v3.4.2 MIT +symfony/process v3.4.4 MIT +symfony/yaml v3.4.4 MIT ++++++ platformsh-cli-3.27.2.tar.xz -> platformsh-cli-3.28.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/CHANGELOG.md new/platformsh-cli-3.28.0/CHANGELOG.md --- old/platformsh-cli-3.27.2/CHANGELOG.md 2018-01-23 19:08:21.000000000 +0100 +++ new/platformsh-cli-3.28.0/CHANGELOG.md 2018-01-30 17:56:41.000000000 +0100 @@ -4,6 +4,19 @@ More readable, curated release notes can be found at: https://github.com/platformsh/platformsh-cli/releases +## [v3.28.0](https://github.com/platformsh/platformsh-cli/tree/v3.27.2) (2018-01-30) +[Full Changelog](https://github.com/platformsh/platformsh-cli/compare/v3.27.2...v3.28.0) + +* Improve `activity:log` output to show more activity information. +* Add `activity:get` command, hidden for now. +* Add `--date-fmt` option to `activity:list` and `snapshot:list`. +* Respect the date.timezone ini setting, and the TZ environment variable. +* Fix inverted requirement of -e/-a options in activity:log (`-a` should make `-e` not required). +* Fix user-defined aliases being prefixed with "@" (thanks to @GROwen, #677) +* Avoid fatal error if invalid YAML config is encountered during updateDrushAliases() +* Use -t instead of RequestTTY in SSH commands, for OpenSSH <5.9 +* Update dependencies (mainly Symfony 3.4.2 -> 3.4.4) + ## [v3.27.2](https://github.com/platformsh/platformsh-cli/tree/v3.27.2) (2018-01-23) [Full Changelog](https://github.com/platformsh/platformsh-cli/compare/v3.27.1...v3.27.2) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/composer.json new/platformsh-cli-3.28.0/composer.json --- old/platformsh-cli-3.27.2/composer.json 2018-01-23 19:08:21.000000000 +0100 +++ new/platformsh-cli-3.28.0/composer.json 2018-01-30 17:56:41.000000000 +0100 @@ -37,8 +37,7 @@ }, "require-dev": { "phpunit/phpunit": "^4.3 <4.8", - "drush/drush": "^8.0", - "sensiolabs/security-checker": "^3.0" + "drush/drush": "^8.0" }, "authors": [ { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/composer.lock new/platformsh-cli-3.28.0/composer.lock --- old/platformsh-cli-3.27.2/composer.lock 2018-01-23 19:08:21.000000000 +0100 +++ new/platformsh-cli-3.28.0/composer.lock 2018-01-30 17:56:41.000000000 +0100 @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "c2de348d7c061147a43e58c9dc33b88c", + "content-hash": "99aec30edb51fe7608bde25ca891ca04", "packages": [ { "name": "cocur/slugify", @@ -332,21 +332,22 @@ }, { "name": "guzzlehttp/guzzle", - "version": "5.3.1", + "version": "5.3.2", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "70f1fa53b71c4647bf2762c09068a95f77e12fb8" + "reference": "f9acb4761844317e626a32259205bec1f1bc60d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/70f1fa53b71c4647bf2762c09...", - "reference": "70f1fa53b71c4647bf2762c09068a95f77e12fb8", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f9acb4761844317e626a32259...", + "reference": "f9acb4761844317e626a32259205bec1f1bc60d2", "shasum": "" }, "require": { "guzzlehttp/ringphp": "^1.1", - "php": ">=5.4.0" + "php": ">=5.4.0", + "react/promise": "^2.2" }, "require-dev": { "ext-curl": "*", @@ -380,7 +381,7 @@ "rest", "web service" ], - "time": "2016-07-15T19:28:39+00:00" + "time": "2018-01-15T07:18:01+00:00" }, { "name": "guzzlehttp/ringphp", @@ -642,16 +643,16 @@ }, { "name": "platformsh/client", - "version": "v0.14.0", + "version": "v0.14.1", "source": { "type": "git", "url": "https://github.com/platformsh/platformsh-client-php.git", - "reference": "47013df77c5ac9d1cea32fd4caa3999ecca150ca" + "reference": "b1c5ff8a0cd896a80aa7330a42d7be9e9ef0dd98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/platformsh/platformsh-client-php/zipball/47013d...", - "reference": "47013df77c5ac9d1cea32fd4caa3999ecca150ca", + "url": "https://api.github.com/repos/platformsh/platformsh-client-php/zipball/b1c5ff...", + "reference": "b1c5ff8a0cd896a80aa7330a42d7be9e9ef0dd98", "shasum": "" }, "require": { @@ -687,7 +688,7 @@ } ], "description": "Platform.sh API client", - "time": "2017-12-20T12:45:06+00:00" + "time": "2018-01-19T10:05:52+00:00" }, { "name": "platformsh/console-form", @@ -917,16 +918,16 @@ }, { "name": "symfony/config", - "version": "v3.4.2", + "version": "v3.4.4", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "e57211b88aa889fefac1cb36866db04100b0f21c" + "reference": "72689b934d6c6ecf73eca874e98933bf055313c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/e57211b88aa889fefac1cb36...", - "reference": "e57211b88aa889fefac1cb36866db04100b0f21c", + "url": "https://api.github.com/repos/symfony/config/zipball/72689b934d6c6ecf73eca874...", + "reference": "72689b934d6c6ecf73eca874e98933bf055313c9", "shasum": "" }, "require": { @@ -975,20 +976,20 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2017-12-14T19:40:10+00:00" + "time": "2018-01-21T19:05:02+00:00" }, { "name": "symfony/console", - "version": "v3.4.2", + "version": "v3.4.4", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "9f21adfb92a9315b73ae2ed43138988ee4913d4e" + "reference": "26b6f419edda16c19775211987651cb27baea7f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/9f21adfb92a9315b73ae2ed...", - "reference": "9f21adfb92a9315b73ae2ed43138988ee4913d4e", + "url": "https://api.github.com/repos/symfony/console/zipball/26b6f419edda16c19775211...", + "reference": "26b6f419edda16c19775211987651cb27baea7f1", "shasum": "" }, "require": { @@ -1044,20 +1045,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2017-12-14T19:40:10+00:00" + "time": "2018-01-29T09:03:43+00:00" }, { "name": "symfony/debug", - "version": "v3.4.2", + "version": "v3.4.4", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "543deab3ffff94402440b326fc94153bae2dfa7a" + "reference": "53f6af2805daf52a43b393b93d2f24925d35c937" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/543deab3ffff94402440b326f...", - "reference": "543deab3ffff94402440b326fc94153bae2dfa7a", + "url": "https://api.github.com/repos/symfony/debug/zipball/53f6af2805daf52a43b393b93...", + "reference": "53f6af2805daf52a43b393b93d2f24925d35c937", "shasum": "" }, "require": { @@ -1100,20 +1101,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2017-12-12T08:27:14+00:00" + "time": "2018-01-18T22:16:57+00:00" }, { "name": "symfony/dependency-injection", - "version": "v3.4.2", + "version": "v3.4.4", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "5f81907ea43bfa971ac2c7fbac593ebe7cd7d333" + "reference": "4b2717ee2499390e371e1fc7abaf886c1c83e83d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/5f81907ea4...", - "reference": "5f81907ea43bfa971ac2c7fbac593ebe7cd7d333", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/4b2717ee24...", + "reference": "4b2717ee2499390e371e1fc7abaf886c1c83e83d", "shasum": "" }, "require": { @@ -1171,20 +1172,20 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2017-12-14T19:40:10+00:00" + "time": "2018-01-29T09:16:57+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v3.4.2", + "version": "v3.4.4", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "b869cbf8a15ca6261689de2c28a7d7f2d0706835" + "reference": "26b87b6bca8f8f797331a30b76fdae5342dc26ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b869cbf8a15ca6...", - "reference": "b869cbf8a15ca6261689de2c28a7d7f2d0706835", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/26b87b6bca8f8f...", + "reference": "26b87b6bca8f8f797331a30b76fdae5342dc26ca", "shasum": "" }, "require": { @@ -1234,20 +1235,20 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2017-12-14T19:40:10+00:00" + "time": "2018-01-03T07:37:34+00:00" }, { "name": "symfony/filesystem", - "version": "v3.4.2", + "version": "v3.4.4", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "25b135bea251829e3db6a77d773643408b575ed4" + "reference": "e078773ad6354af38169faf31c21df0f18ace03d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/25b135bea251829e3db6...", - "reference": "25b135bea251829e3db6a77d773643408b575ed4", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/e078773ad6354af38169...", + "reference": "e078773ad6354af38169faf31c21df0f18ace03d", "shasum": "" }, "require": { @@ -1283,20 +1284,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2017-12-14T19:40:10+00:00" + "time": "2018-01-03T07:37:34+00:00" }, { "name": "symfony/finder", - "version": "v3.4.2", + "version": "v3.4.4", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "dac8d7db537bac7ad8143eb11360a8c2231f251a" + "reference": "613e26310776f49a1773b6737c6bd554b8bc8c6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/dac8d7db537bac7ad8143eb1...", - "reference": "dac8d7db537bac7ad8143eb11360a8c2231f251a", + "url": "https://api.github.com/repos/symfony/finder/zipball/613e26310776f49a1773b673...", + "reference": "613e26310776f49a1773b6737c6bd554b8bc8c6f", "shasum": "" }, "require": { @@ -1332,7 +1333,7 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2017-11-05T16:10:10+00:00" + "time": "2018-01-03T07:37:34+00:00" }, { "name": "symfony/polyfill-mbstring", @@ -1395,16 +1396,16 @@ }, { "name": "symfony/process", - "version": "v3.4.2", + "version": "v3.4.4", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "bb3ef65d493a6d57297cad6c560ee04e2a8f5098" + "reference": "09a5172057be8fc677840e591b17f385e58c7c0d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/bb3ef65d493a6d57297cad6...", - "reference": "bb3ef65d493a6d57297cad6c560ee04e2a8f5098", + "url": "https://api.github.com/repos/symfony/process/zipball/09a5172057be8fc677840e5...", + "reference": "09a5172057be8fc677840e591b17f385e58c7c0d", "shasum": "" }, "require": { @@ -1440,20 +1441,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2017-12-14T19:40:10+00:00" + "time": "2018-01-29T09:03:43+00:00" }, { "name": "symfony/yaml", - "version": "v3.4.2", + "version": "v3.4.4", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "afe0cd38486505c9703707707d91450cfc1bd536" + "reference": "eab73b6c21d27ae4cd037c417618dfd4befb0bfe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/afe0cd38486505c9703707707d...", - "reference": "afe0cd38486505c9703707707d91450cfc1bd536", + "url": "https://api.github.com/repos/symfony/yaml/zipball/eab73b6c21d27ae4cd037c4176...", + "reference": "eab73b6c21d27ae4cd037c417618dfd4befb0bfe", "shasum": "" }, "require": { @@ -1498,7 +1499,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2017-12-11T20:38:23+00:00" + "time": "2018-01-21T19:05:02+00:00" } ], "packages-dev": [ @@ -1888,16 +1889,16 @@ }, { "name": "nikic/php-parser", - "version": "v3.1.3", + "version": "v3.1.4", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "579f4ce846734a1cf55d6a531d00ca07a43e3cda" + "reference": "e57b3a09784f846411aa7ed664eedb73e3399078" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/579f4ce846734a1cf55d6a...", - "reference": "579f4ce846734a1cf55d6a531d00ca07a43e3cda", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/e57b3a09784f846411aa7e...", + "reference": "e57b3a09784f846411aa7ed664eedb73e3399078", "shasum": "" }, "require": { @@ -1935,20 +1936,20 @@ "parser", "php" ], - "time": "2017-12-26T14:43:21+00:00" + "time": "2018-01-25T21:31:33+00:00" }, { "name": "pear/console_table", - "version": "v1.3.0", + "version": "v1.3.1", "source": { "type": "git", "url": "https://github.com/pear/Console_Table.git", - "reference": "64100b9ee81852f4fa17823e55d0b385a544f976" + "reference": "1930c11897ca61fd24b95f2f785e99e0f36dcdea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pear/Console_Table/zipball/64100b9ee81852f4fa17...", - "reference": "64100b9ee81852f4fa17823e55d0b385a544f976", + "url": "https://api.github.com/repos/pear/Console_Table/zipball/1930c11897ca61fd24b9...", + "reference": "1930c11897ca61fd24b95f2f785e99e0f36dcdea", "shasum": "" }, "require": { @@ -1990,7 +1991,7 @@ "keywords": [ "console" ], - "time": "2016-01-21T16:14:31+00:00" + "time": "2018-01-25T20:47:17+00:00" }, { "name": "phpdocumentor/reflection-docblock", @@ -2925,50 +2926,6 @@ "time": "2015-06-21T13:59:46+00:00" }, { - "name": "sensiolabs/security-checker", - "version": "v3.0.7", - "source": { - "type": "git", - "url": "https://github.com/sensiolabs/security-checker.git", - "reference": "59a6a299e2f5612dc8692d40e84373703a5df1b5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/59a6a299e2f...", - "reference": "59a6a299e2f5612dc8692d40e84373703a5df1b5", - "shasum": "" - }, - "require": { - "symfony/console": "~2.0|~3.0" - }, - "bin": [ - "security-checker" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-0": { - "SensioLabs\\Security": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien.potencier@gmail.com" - } - ], - "description": "A security checker for your composer.lock", - "time": "2017-03-29T09:29:53+00:00" - }, - { "name": "symfony/var-dumper", "version": "v3.2.4", "source": { @@ -3033,16 +2990,16 @@ }, { "name": "webmozart/assert", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f" + "reference": "0df1908962e7a3071564e857d86874dad1ef204a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152...", - "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f", + "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e8...", + "reference": "0df1908962e7a3071564e857d86874dad1ef204a", "shasum": "" }, "require": { @@ -3079,7 +3036,7 @@ "check", "validate" ], - "time": "2016-11-23T20:04:58+00:00" + "time": "2018-01-29T19:49:41+00:00" }, { "name": "webmozart/path-util", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/config.yaml new/platformsh-cli-3.28.0/config.yaml --- old/platformsh-cli-3.27.2/config.yaml 2018-01-23 19:08:21.000000000 +0100 +++ new/platformsh-cli-3.28.0/config.yaml 2018-01-30 17:56:41.000000000 +0100 @@ -1,7 +1,7 @@ # Metadata about the CLI application itself. application: name: 'Platform.sh CLI' - version: '3.27.2' + version: '3.28.0' executable: 'platform' package_name: 'platformsh/cli' installer_url: 'https://platform.sh/cli/installer' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/dist/manifest.json new/platformsh-cli-3.28.0/dist/manifest.json --- old/platformsh-cli-3.27.2/dist/manifest.json 2018-01-23 19:08:21.000000000 +0100 +++ new/platformsh-cli-3.28.0/dist/manifest.json 2018-01-30 17:56:41.000000000 +0100 @@ -1,10 +1,10 @@ [ { "name": "platform.phar", - "sha1": "7163104887c943ed8035f9d42fc87f8baf25edef", - "sha256": "8508e9e766078d1081208184e8393eb9f2616bb79520bb3d0035202417d24508", - "url": "https://github.com/platformsh/platformsh-cli/releases/download/v3.27.2/platf...", - "version": "3.27.2", + "sha1": "4ea45e3d18eaaba7422460ef03912f68638a7ccb", + "sha256": "fcf5e8d67c198621106a242937c7d6e35eb2df5044847c447b78f3aaa31bce8a", + "url": "https://github.com/platformsh/platformsh-cli/releases/download/v3.28.0/platf...", + "version": "3.28.0", "php": { "min": "5.5.9" }, @@ -97,6 +97,11 @@ "notes": "* Use browser login by default (the old login method is available as `auth:password-login`).\n* Set `--build-pull-requests-post-merge` to false by default (GitHub integrations).\n* Respect `--no-wait` in `environment:init`, and clear the environment cache afterwards.\n* In the `project:delete` command, leave access control to the API.\n* Support disabling or enabling colorized output via the CLICOLOR_FORCE environment variable.", "show from": "3.26.0", "hide from": "3.27.0" + }, + { + "notes": "* Improved `activity:log` output to show more activity information.\n* Added `activity:get` command, hidden for now.\n* Added `--date-fmt` option to `activity:list` and `snapshot:list`.\n* Added detection for the date.timezone ini setting, and the TZ environment variable.\n* Fixed inverted requirement of -e/-a options in activity:log (`-a` should make `-e` not required).\n* Fixed user-defined aliases being prefixed with \"@\" (thanks to @GROwen, #677).\n* Avoid fatal error if invalid YAML config is encountered during updateDrushAliases().\n* Fixed SSH commands for very old OpenSSH versions <5.9 (using -t instead of RequestTTY).\n* Updated dependencies (mainly Symfony 3.4.2 -> 3.4.4).", + "show from": "3.27.0", + "hide from": "3.28.0" } ] } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Application.php new/platformsh-cli-3.28.0/src/Application.php --- old/platformsh-cli-3.27.2/src/Application.php 2018-01-23 19:08:21.000000000 +0100 +++ new/platformsh-cli-3.28.0/src/Application.php 2018-01-30 17:56:41.000000000 +0100 @@ -3,6 +3,7 @@ use Platformsh\Cli\Console\EventSubscriber; use Platformsh\Cli\Service\Config; +use Platformsh\Cli\Util\TimezoneUtil; use Symfony\Component\Console\Application as ParentApplication; use Symfony\Component\Console\Command\Command as ConsoleCommand; use Symfony\Component\Console\Exception\InvalidArgumentException as ConsoleInvalidArgumentException; @@ -34,7 +35,7 @@ $this->cliConfig = new Config(); parent::__construct($this->cliConfig->get('application.name'), $this->cliConfig->get('application.version')); - $this->setDefaultTimezone(); + date_default_timezone_set(TimezoneUtil::getTimezone()); $this->addCommands($this->getCommands()); @@ -88,6 +89,7 @@ $commands[] = new Command\DocsCommand(); $commands[] = new Command\LegacyMigrateCommand(); $commands[] = new Command\MultiCommand(); + $commands[] = new Command\Activity\ActivityGetCommand(); $commands[] = new Command\Activity\ActivityListCommand(); $commands[] = new Command\Activity\ActivityLogCommand(); $commands[] = new Command\App\AppConfigGetCommand(); @@ -261,40 +263,6 @@ } /** - * Set the default PHP timezone according to the system timezone. - * - * PHP >=5.4 removed the autodetection of the system timezone, so it is - * re-implemented here. - */ - protected function setDefaultTimezone() - { - $timezone = date_default_timezone_get(); - - if (is_link('/etc/localtime')) { - // Mac OS X (and older Linuxes) - // /etc/localtime is a symlink to the timezone in /usr/share/zoneinfo. - $filename = readlink('/etc/localtime'); - if (strpos($filename, '/usr/share/zoneinfo/') === 0) { - $timezone = substr($filename, 20); - } - } elseif (file_exists('/etc/timezone')) { - // Ubuntu / Debian. - $data = file_get_contents('/etc/timezone'); - if ($data) { - $timezone = trim($data); - } - } elseif (file_exists('/etc/sysconfig/clock')) { - // RHEL/CentOS - $data = parse_ini_file('/etc/sysconfig/clock'); - if (!empty($data['ZONE'])) { - $timezone = trim($data['ZONE']); - } - } - - date_default_timezone_set($timezone); - } - - /** * {@inheritdoc} */ public function renderException(\Exception $e, OutputInterface $output) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/Activity/ActivityGetCommand.php new/platformsh-cli-3.28.0/src/Command/Activity/ActivityGetCommand.php --- old/platformsh-cli-3.27.2/src/Command/Activity/ActivityGetCommand.php 1970-01-01 01:00:00.000000000 +0100 +++ new/platformsh-cli-3.28.0/src/Command/Activity/ActivityGetCommand.php 2018-01-30 17:56:41.000000000 +0100 @@ -0,0 +1,126 @@ +<?php +namespace Platformsh\Cli\Command\Activity; + +use Platformsh\Cli\Command\CommandBase; +use Platformsh\Cli\Service\PropertyFormatter; +use Platformsh\Cli\Service\Table; +use Platformsh\Client\Model\Activity; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; + +class ActivityGetCommand extends CommandBase +{ + protected $hiddenInList = true; + + /** + * {@inheritdoc} + */ + protected function configure() + { + $this + ->setName('activity:get') + ->addArgument('id', InputArgument::OPTIONAL, 'The activity ID. Defaults to the most recent activity.') + ->addOption('type', null, InputOption::VALUE_REQUIRED, 'Filter recent activities by type') + ->addOption('all', 'a', InputOption::VALUE_NONE, 'Check recent activities on all environments') + ->addOption('property', 'P', InputOption::VALUE_REQUIRED, 'The property to view') + ->setDescription('View detailed information on a single activity'); + $this->addProjectOption() + ->addEnvironmentOption(); + Table::configureInput($this->getDefinition()); + PropertyFormatter::configureInput($this->getDefinition()); + $this->addExample('Find the time a project was created', '--all --type project.create -P completed_at'); + $this->addExample('Find the duration (in seconds) of the last activity', '-P duration'); + } + + protected function execute(InputInterface $input, OutputInterface $output) + { + $this->validateInput($input, $input->getOption('all')); + + $id = $input->getArgument('id'); + if ($id) { + $activity = $this->getSelectedProject() + ->getActivity($id); + if (!$activity) { + $this->stdErr->writeln("Activity not found: <error>$id</error>"); + + return 1; + } + } else { + if ($this->hasSelectedEnvironment() && !$input->getOption('all')) { + $activities = $this->getSelectedEnvironment() + ->getActivities(1, $input->getOption('type')); + } else { + $activities = $this->getSelectedProject() + ->getActivities(1, $input->getOption('type')); + } + /** @var Activity $activity */ + $activity = reset($activities); + if (!$activity) { + $this->stdErr->writeln('No activities found'); + + return 1; + } + } + + /** @var Table $table */ + $table = $this->getService('table'); + /** @var PropertyFormatter $formatter */ + $formatter = $this->getService('property_formatter'); + + $properties = $activity->getProperties(); + + // Add the activity "description" as a property. + if (!isset($properties['description'])) { + $properties['description'] = $activity->getDescription(); + } + + // Calculate the duration of the activity. + if (!isset($properties['duration'])) { + $start = strtotime($activity->started_at); + $created = strtotime($activity->created_at); + $end = strtotime($activity->isComplete() ? $activity->completed_at : $activity->updated_at); + $start = $start === $end ? $created : $start; + $properties['duration'] = $end - $start > 0 ? $end - $start : null; + } + + if ($property = $input->getOption('property')) { + $formatter->displayData($output, $properties, $property); + return 0; + } + + unset($properties['payload'], $properties['log']); + + $this->stdErr->writeln( + 'These properties have been omitted for brevity: <comment>payload</comment> and <comment>log</comment>.' + . ' You can still view them with the -P (--property) option.', + OutputInterface::VERBOSITY_VERBOSE + ); + + $header = []; + $rows = []; + foreach ($properties as $property => $value) { + $header[] = $property; + $rows[] = $formatter->format($value, $property); + } + + $table->renderSimple($rows, $header); + + if (!$table->formatIsMachineReadable()) { + $executable = $this->config()->get('application.executable'); + $this->stdErr->writeln(''); + $this->stdErr->writeln(sprintf( + 'To view the log for this activity, run: <info>%s activity:log %s</info>', + $executable, + $activity->id + )); + $this->stdErr->writeln(sprintf( + 'To list activities, run: <info>%s activities</info>', + $executable + )); + } + + return 0; + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/Activity/ActivityListCommand.php new/platformsh-cli-3.28.0/src/Command/Activity/ActivityListCommand.php --- old/platformsh-cli-3.27.2/src/Command/Activity/ActivityListCommand.php 2018-01-23 19:08:21.000000000 +0100 +++ new/platformsh-cli-3.28.0/src/Command/Activity/ActivityListCommand.php 2018-01-30 17:56:41.000000000 +0100 @@ -4,6 +4,7 @@ use Platformsh\Cli\Command\CommandBase; use Platformsh\Cli\Console\AdaptiveTableCell; use Platformsh\Cli\Service\ActivityMonitor; +use Platformsh\Cli\Service\PropertyFormatter; use Platformsh\Cli\Service\Table; use Symfony\Component\Console\Helper\ProgressBar; use Symfony\Component\Console\Input\InputInterface; @@ -27,6 +28,7 @@ ->addOption('all', 'a', InputOption::VALUE_NONE, 'Check activities on all environments') ->setDescription('Get a list of activities for an environment or project'); Table::configureInput($this->getDefinition()); + PropertyFormatter::configureInput($this->getDefinition()); $this->addProjectOption() ->addEnvironmentOption(); $this->addExample('List recent activities for the current environment') @@ -87,12 +89,14 @@ /** @var \Platformsh\Cli\Service\Table $table */ $table = $this->getService('table'); + /** @var \Platformsh\Cli\Service\PropertyFormatter $formatter */ + $formatter = $this->getService('property_formatter'); $rows = []; foreach ($activities as $activity) { $row = [ new AdaptiveTableCell($activity->id, ['wrap' => false]), - date('Y-m-d H:i:s', strtotime($activity['created_at'])), + $formatter->format($activity['created_at'], 'created_at'), $activity->getDescription(), $activity->getCompletionPercent() . '%', ActivityMonitor::formatState($activity->state), @@ -131,13 +135,16 @@ $table->render($rows, $headers); if (!$table->formatIsMachineReadable()) { + $executable = $this->config()->get('application.executable'); $this->stdErr->writeln(''); - $this->stdErr->writeln( - sprintf( - 'To view the log for an activity, run: <info>%s activity:log [id]</info>', - $this->config()->get('application.executable') - ) - ); + $this->stdErr->writeln(sprintf( + 'To view the log for an activity, run: <info>%s activity:log [id]</info>', + $executable + )); + $this->stdErr->writeln(sprintf( + 'To view more information about an activity, run: <info>%s activity:get [id]</info>', + $executable + )); } return 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/Activity/ActivityLogCommand.php new/platformsh-cli-3.28.0/src/Command/Activity/ActivityLogCommand.php --- old/platformsh-cli-3.27.2/src/Command/Activity/ActivityLogCommand.php 2018-01-23 19:08:21.000000000 +0100 +++ new/platformsh-cli-3.28.0/src/Command/Activity/ActivityLogCommand.php 2018-01-30 17:56:41.000000000 +0100 @@ -2,6 +2,8 @@ namespace Platformsh\Cli\Command\Activity; use Platformsh\Cli\Command\CommandBase; +use Platformsh\Cli\Service\ActivityMonitor; +use Platformsh\Cli\Service\PropertyFormatter; use Platformsh\Client\Model\Activity; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; @@ -25,9 +27,10 @@ 'Log refresh interval (seconds). Set to 0 to disable refreshing.', 1 ) - ->addOption('type', null, InputOption::VALUE_REQUIRED, 'Filter activities by type') - ->addOption('all', 'a', InputOption::VALUE_NONE, 'Check activities on all environments') + ->addOption('type', null, InputOption::VALUE_REQUIRED, 'Filter recent activities by type') + ->addOption('all', 'a', InputOption::VALUE_NONE, 'Check recent activities on all environments') ->setDescription('Display the log for an activity'); + PropertyFormatter::configureInput($this->getDefinition()); $this->addProjectOption() ->addEnvironmentOption(); $this->addExample('Display the log for the last push on the current environment', '--type environment.push') @@ -36,7 +39,7 @@ protected function execute(InputInterface $input, OutputInterface $output) { - $this->validateInput($input, !$input->getOption('all')); + $this->validateInput($input, $input->getOption('all')); $id = $input->getArgument('id'); if ($id) { @@ -64,9 +67,16 @@ } } - $this->stdErr->writeln( - "Log for activity <info>" . $activity->id . "</info> (" . $activity->getDescription() . "):\n" - ); + /** @var \Platformsh\Cli\Service\PropertyFormatter $formatter */ + $formatter = $this->getService('property_formatter'); + + $this->stdErr->writeln([ + sprintf('<info>Activity ID: </info>%s', $activity->id), + sprintf('<info>Description: </info>%s', $activity->getDescription()), + sprintf('<info>Created: </info>%s', $formatter->format($activity->created_at, 'created_at')), + sprintf('<info>State: </info>%s', ActivityMonitor::formatState($activity->state)), + '<info>Log: </info>', + ]); $refresh = $input->getOption('refresh'); if ($refresh > 0 && !$this->runningViaMulti && $output->isDecorated() && !$activity->isComplete()) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/CommandBase.php new/platformsh-cli-3.28.0/src/Command/CommandBase.php --- old/platformsh-cli-3.27.2/src/Command/CommandBase.php 2018-01-23 19:08:21.000000000 +0100 +++ new/platformsh-cli-3.28.0/src/Command/CommandBase.php 2018-01-30 17:56:41.000000000 +0100 @@ -497,8 +497,11 @@ $drush = $this->getService('drush'); try { $drush->createAliases($event->getProject(), $projectRoot, $event->getEnvironments()); - } catch (\RuntimeException $e) { - $this->stdErr->writeln('<comment>Failed to update Drush aliases:</comment> ' . $e->getMessage()); + } catch (\Exception $e) { + $this->stdErr->writeln(sprintf( + "<comment>Failed to update Drush aliases:</comment>\n%s\n", + preg_replace('/^/m', ' ', trim($e->getMessage())) + )); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/Db/DbSqlCommand.php new/platformsh-cli-3.28.0/src/Command/Db/DbSqlCommand.php --- old/platformsh-cli-3.27.2/src/Command/Db/DbSqlCommand.php 2018-01-23 19:08:21.000000000 +0100 +++ new/platformsh-cli-3.28.0/src/Command/Db/DbSqlCommand.php 2018-01-30 17:56:41.000000000 +0100 @@ -74,10 +74,10 @@ $ssh = $this->getService('ssh'); $sshOptions = []; + $sshCommand = $ssh->getSshCommand($sshOptions); if ($this->isTerminal(STDIN)) { - $sshOptions['RequestTty'] = 'yes'; + $sshCommand .= ' -t'; } - $sshCommand = $ssh->getSshCommand($sshOptions); $sshCommand .= ' ' . escapeshellarg($sshUrl) . ' ' . escapeshellarg($sqlCommand); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/Environment/EnvironmentSshCommand.php new/platformsh-cli-3.28.0/src/Command/Environment/EnvironmentSshCommand.php --- old/platformsh-cli-3.27.2/src/Command/Environment/EnvironmentSshCommand.php 2018-01-23 19:08:21.000000000 +0100 +++ new/platformsh-cli-3.28.0/src/Command/Environment/EnvironmentSshCommand.php 2018-01-30 17:56:41.000000000 +0100 @@ -58,10 +58,10 @@ /** @var \Platformsh\Cli\Service\Ssh $ssh */ $ssh = $this->getService('ssh'); $sshOptions = []; + $command = $ssh->getSshCommand($sshOptions); if ($this->isTerminal(STDIN)) { - $sshOptions['RequestTty'] = 'yes'; + $command .= ' -t'; } - $command = $ssh->getSshCommand($sshOptions); $command .= ' ' . escapeshellarg($sshUrl); if ($remoteCommand) { $command .= ' ' . escapeshellarg($remoteCommand); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/Service/RedisCliCommand.php new/platformsh-cli-3.28.0/src/Command/Service/RedisCliCommand.php --- old/platformsh-cli-3.27.2/src/Command/Service/RedisCliCommand.php 2018-01-23 19:08:21.000000000 +0100 +++ new/platformsh-cli-3.28.0/src/Command/Service/RedisCliCommand.php 2018-01-30 17:56:41.000000000 +0100 @@ -60,10 +60,10 @@ $ssh = $this->getService('ssh'); $sshOptions = []; + $sshCommand = $ssh->getSshCommand($sshOptions); if ($this->isTerminal(STDIN)) { - $sshOptions['RequestTty'] = 'yes'; + $sshCommand .= ' -t'; } - $sshCommand = $ssh->getSshCommand($sshOptions); $sshCommand .= ' ' . escapeshellarg($sshUrl) . ' ' . escapeshellarg($redisCommand); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/Snapshot/SnapshotListCommand.php new/platformsh-cli-3.28.0/src/Command/Snapshot/SnapshotListCommand.php --- old/platformsh-cli-3.27.2/src/Command/Snapshot/SnapshotListCommand.php 2018-01-23 19:08:21.000000000 +0100 +++ new/platformsh-cli-3.28.0/src/Command/Snapshot/SnapshotListCommand.php 2018-01-30 17:56:41.000000000 +0100 @@ -4,6 +4,7 @@ use Platformsh\Cli\Command\CommandBase; use Platformsh\Cli\Console\AdaptiveTableCell; use Platformsh\Cli\Service\ActivityMonitor; +use Platformsh\Cli\Service\PropertyFormatter; use Platformsh\Cli\Service\Table; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; @@ -21,6 +22,7 @@ ->addOption('limit', null, InputOption::VALUE_REQUIRED, 'Limit the number of snapshots to list', 10) ->addOption('start', null, InputOption::VALUE_REQUIRED, 'Only snapshots created before this date will be listed'); Table::configureInput($this->getDefinition()); + PropertyFormatter::configureInput($this->getDefinition()); $this->addProjectOption() ->addEnvironmentOption(); $this->addExample('List the most recent snapshots') @@ -41,6 +43,8 @@ /** @var \Platformsh\Cli\Service\Table $table */ $table = $this->getService('table'); + /** @var \Platformsh\Cli\Service\PropertyFormatter $formatter */ + $formatter = $this->getService('property_formatter'); if (!$table->formatIsMachineReadable()) { $this->stdErr->writeln("Finding snapshots for the environment <info>{$environment->id}</info>"); @@ -57,7 +61,7 @@ foreach ($activities as $activity) { $snapshot_name = !empty($activity->payload['backup_name']) ? $activity->payload['backup_name'] : 'N/A'; $rows[] = [ - date('Y-m-d H:i:s', strtotime($activity->created_at)), + $formatter->format($activity->created_at, 'created_at'), new AdaptiveTableCell($snapshot_name, ['wrap' => false]), $activity->getCompletionPercent() . '%', ActivityMonitor::formatState($activity->state), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/Snapshot/SnapshotRestoreCommand.php new/platformsh-cli-3.28.0/src/Command/Snapshot/SnapshotRestoreCommand.php --- old/platformsh-cli-3.27.2/src/Command/Snapshot/SnapshotRestoreCommand.php 2018-01-23 19:08:21.000000000 +0100 +++ new/platformsh-cli-3.28.0/src/Command/Snapshot/SnapshotRestoreCommand.php 2018-01-30 17:56:41.000000000 +0100 @@ -75,7 +75,7 @@ /** @var \Platformsh\Cli\Service\QuestionHelper $questionHelper */ $questionHelper = $this->getService('question_helper'); $name = $selectedActivity['payload']['backup_name']; - $date = date('Y-m-d H:i', strtotime($selectedActivity['created_at'])); + $date = date('c', strtotime($selectedActivity['created_at'])); if (!$questionHelper->confirm( "Are you sure you want to restore the snapshot <comment>$name</comment> from <comment>$date</comment>?" )) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Service/PropertyFormatter.php new/platformsh-cli-3.28.0/src/Service/PropertyFormatter.php --- old/platformsh-cli-3.27.2/src/Service/PropertyFormatter.php 2018-01-23 19:08:21.000000000 +0100 +++ new/platformsh-cli-3.28.0/src/Service/PropertyFormatter.php 2018-01-30 17:56:41.000000000 +0100 @@ -39,6 +39,8 @@ case 'created_at': case 'updated_at': case 'expires_at': + case 'started_at': + case 'completed_at': case 'ssl.expires_on': return $this->formatDate($value); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/SiteAlias/DrushAlias.php new/platformsh-cli-3.28.0/src/SiteAlias/DrushAlias.php --- old/platformsh-cli-3.27.2/src/SiteAlias/DrushAlias.php 2018-01-23 19:08:21.000000000 +0100 +++ new/platformsh-cli-3.28.0/src/SiteAlias/DrushAlias.php 2018-01-30 17:56:41.000000000 +0100 @@ -138,13 +138,15 @@ * @param string|null $previousGroup * * @return array + * The aliases, with their group prefixes removed. */ protected function getExistingAliases($currentGroup, $previousGroup = null) { $aliases = []; foreach (array_filter([$currentGroup, $previousGroup]) as $groupName) { - foreach ($this->drush->getAliases($groupName) as $aliasName => $alias) { - $aliases[str_replace($groupName . '.', '', $aliasName)] = $alias; + $prefix = '@' . $groupName . '.'; + foreach ($this->drush->getAliases($groupName) as $prefixedName => $alias) { + $aliases[str_replace($prefix, '', $prefixedName)] = $alias; } } @@ -154,7 +156,7 @@ /** * Generate new aliases. * - * @param array $apps + * @param LocalApplication[] $apps * @param array $environments * * @return array @@ -225,7 +227,7 @@ * * @return array|false */ - protected function generateRemoteAlias($environment, $app) + protected function generateRemoteAlias(Environment $environment, LocalApplication $app) { if (!$environment->hasLink('ssh')) { return false; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Util/TimezoneUtil.php new/platformsh-cli-3.28.0/src/Util/TimezoneUtil.php --- old/platformsh-cli-3.27.2/src/Util/TimezoneUtil.php 1970-01-01 01:00:00.000000000 +0100 +++ new/platformsh-cli-3.28.0/src/Util/TimezoneUtil.php 2018-01-30 17:56:41.000000000 +0100 @@ -0,0 +1,84 @@ +<?php + +namespace Platformsh\Cli\Util; + +class TimezoneUtil +{ + /** + * Get the timezone intended by the user. + * + * The timezone is detected with the following priorities: + * + * 1. A value previously set via date_default_timezone_set(), which can + * only be known if it is not the default, UTC. + * 2. The value of the ini setting 'date.timezone'. + * 3. The value of the TZ environment variable, if set. + * 4. A best guess at the system timezone: see self::detectSystemTimezone(). + * 5. Default to the value of date_default_timezone_get(), which at this + * stage will almost definitely be UTC. + * + * @return string + */ + public static function getTimezone() + { + $currentTz = date_default_timezone_get(); + if ($currentTz !== 'UTC') { + return $currentTz; + } + + if (ini_get('date.timezone')) { + return ini_get('date.timezone'); + } + + if (getenv('TZ')) { + return (string) getenv('TZ'); + } + + if ($systemTz = self::detectSystemTimezone()) { + return $systemTz; + } + + return $currentTz; + } + + /** + * Detect the system timezone, restoring functionality from PHP < 5.4. + * + * @return string|false + */ + private static function detectSystemTimezone() + { + // Mac OS X (and older Linuxes): /etc/localtime is a symlink to the + // timezone in /usr/share/zoneinfo or /var/db/timezone/zoneinfo. + if (is_link('/etc/localtime')) { + $filename = readlink('/etc/localtime'); + $prefixes = [ + '/usr/share/zoneinfo/', + '/var/db/timezone/zoneinfo/', + ]; + foreach ($prefixes as $prefix) { + if (strpos($filename, $prefix) === 0) { + return substr($filename, strlen($prefix)); + } + } + } + + // Ubuntu and Debian. + if (file_exists('/etc/timezone')) { + $data = file_get_contents('/etc/timezone'); + if ($data !== false) { + return trim($data); + } + } + + // RHEL and CentOS. + if (file_exists('/etc/sysconfig/clock')) { + $data = parse_ini_file('/etc/sysconfig/clock'); + if (!empty($data['ZONE'])) { + return trim($data['ZONE']); + } + } + + return false; + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/tests/Util/TimezoneUtilTest.php new/platformsh-cli-3.28.0/tests/Util/TimezoneUtilTest.php --- old/platformsh-cli-3.27.2/tests/Util/TimezoneUtilTest.php 1970-01-01 01:00:00.000000000 +0100 +++ new/platformsh-cli-3.28.0/tests/Util/TimezoneUtilTest.php 2018-01-30 17:56:41.000000000 +0100 @@ -0,0 +1,59 @@ +<?php + +namespace Platformsh\Cli\Tests\Util; + +use Platformsh\Cli\Util\TimezoneUtil; + +class TimezoneUtilTest extends \PHPUnit_Framework_TestCase +{ + private $originalSetting; + private $originalIni; + private $originalEnv; + + public function setUp() + { + // Reset to PHP defaults. + $this->originalIni = ini_get('date.timezone'); + $this->originalSetting = date_default_timezone_get(); + $this->originalEnv = getenv('TZ'); + ini_set('date.timezone', 'UTC'); + date_default_timezone_set('UTC'); + putenv('TZ='); + } + + public function tearDown() + { + // Reset to original settings. + ini_set('date.timezone', $this->originalIni); + date_default_timezone_set($this->originalSetting); + if ($this->originalEnv !== false) { + putenv('TZ=' . $this->originalEnv); + } + } + + public function testGetTimezoneReturnsIni() + { + // Pick a rare timezone. + ini_set('date.timezone', 'Pacific/Galapagos'); + $this->assertEquals('Pacific/Galapagos', TimezoneUtil::getTimezone()); + } + + public function testGetTimezoneReturnsCurrent() + { + ini_set('date.timezone', 'Antarctica/McMurdo'); + date_default_timezone_set('Antarctica/Troll'); + $this->assertEquals('Antarctica/Troll', TimezoneUtil::getTimezone()); + } + + public function testGetTimezoneReturnsEnvVar() + { + @ini_set('date.timezone', ''); + putenv('TZ=Arctic/Longyearbyen'); + $this->assertEquals('Arctic/Longyearbyen', TimezoneUtil::getTimezone()); + } + + public function testGetTimezoneReturnsSomething() + { + $this->assertNotEmpty(TimezoneUtil::getTimezone()); + } +} ++++++ platformsh-cli-vendor.tar.xz ++++++ ++++ 4191 lines of diff (skipped)
participants (1)
-
root@hilbert.suse.de