diff --git a/composer.json b/composer.json index 066a6e66..07134099 100644 --- a/composer.json +++ b/composer.json @@ -10,6 +10,7 @@ "consolidation/annotated-command": "~2", "drupal/console-core": "1.0.2", "drush/drush": "8.x", + "monolog/monolog": "^1.23", "psr/log": "^1.0", "psy/psysh": "^0.8.11", "symfony/console": "^3.2", diff --git a/composer.lock b/composer.lock index 36a45659..6462b8c6 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "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": "9a25b24761df3282da478cb6fb3b3358", + "content-hash": "ccedb24788cdb40f066b117dd4a43c6d", "packages": [ { "name": "consolidation/annotated-command", - "version": "2.8.3", + "version": "2.8.4", "source": { "type": "git", "url": "https://github.com/consolidation/annotated-command.git", - "reference": "8f8f5da2ca06fbd3a85f7d551c49f844b7c59437" + "reference": "651541a0b68318a2a202bda558a676e5ad92223c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/8f8f5da2ca06fbd3a85f7d551c49f844b7c59437", - "reference": "8f8f5da2ca06fbd3a85f7d551c49f844b7c59437", + "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/651541a0b68318a2a202bda558a676e5ad92223c", + "reference": "651541a0b68318a2a202bda558a676e5ad92223c", "shasum": "" }, "require": { @@ -29,9 +29,9 @@ "symfony/finder": "^2.5|^3|^4" }, "require-dev": { - "greg-1-anderson/composer-test-scenarios": "^1", - "phpunit/phpunit": "^4.8", - "satooshi/php-coveralls": "^1.0.2 | dev-master", + "g1a/composer-test-scenarios": "^2", + "phpunit/phpunit": "^6", + "satooshi/php-coveralls": "^2", "squizlabs/php_codesniffer": "^2.7" }, "type": "library", @@ -56,20 +56,20 @@ } ], "description": "Initialize Symfony Console commands from annotated command class methods.", - "time": "2018-02-23T16:32:04+00:00" + "time": "2018-05-25T18:04:25+00:00" }, { "name": "consolidation/config", - "version": "1.0.9", + "version": "1.0.11", "source": { "type": "git", "url": "https://github.com/consolidation/config.git", - "reference": "34ca8d7c1ee60a7b591b10617114cf1210a2e92c" + "reference": "ede41d946078e97e7a9513aadc3352f1c26817af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/config/zipball/34ca8d7c1ee60a7b591b10617114cf1210a2e92c", - "reference": "34ca8d7c1ee60a7b591b10617114cf1210a2e92c", + "url": "https://api.github.com/repos/consolidation/config/zipball/ede41d946078e97e7a9513aadc3352f1c26817af", + "reference": "ede41d946078e97e7a9513aadc3352f1c26817af", "shasum": "" }, "require": { @@ -78,7 +78,7 @@ "php": ">=5.4.0" }, "require-dev": { - "greg-1-anderson/composer-test-scenarios": "^1", + "g1a/composer-test-scenarios": "^1", "phpunit/phpunit": "^4", "satooshi/php-coveralls": "^1.0", "squizlabs/php_codesniffer": "2.*", @@ -110,20 +110,20 @@ } ], "description": "Provide configuration services for a commandline tool.", - "time": "2017-12-22T17:28:19+00:00" + "time": "2018-05-27T01:17:02+00:00" }, { "name": "consolidation/log", - "version": "1.0.5", + "version": "1.0.6", "source": { "type": "git", "url": "https://github.com/consolidation/log.git", - "reference": "dbc7c535f319a4a2d5a5077738f8eb7c10df8821" + "reference": "dfd8189a771fe047bf3cd669111b2de5f1c79395" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/log/zipball/dbc7c535f319a4a2d5a5077738f8eb7c10df8821", - "reference": "dbc7c535f319a4a2d5a5077738f8eb7c10df8821", + "url": "https://api.github.com/repos/consolidation/log/zipball/dfd8189a771fe047bf3cd669111b2de5f1c79395", + "reference": "dfd8189a771fe047bf3cd669111b2de5f1c79395", "shasum": "" }, "require": { @@ -132,8 +132,9 @@ "symfony/console": "^2.8|^3|^4" }, "require-dev": { + "g1a/composer-test-scenarios": "^1", "phpunit/phpunit": "4.*", - "satooshi/php-coveralls": "dev-master", + "satooshi/php-coveralls": "^2", "squizlabs/php_codesniffer": "2.*" }, "type": "library", @@ -158,20 +159,20 @@ } ], "description": "Improved Psr-3 / Psr\\Log logger based on Symfony Console components.", - "time": "2017-11-29T01:44:16+00:00" + "time": "2018-05-25T18:14:39+00:00" }, { "name": "consolidation/output-formatters", - "version": "3.2.0", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/consolidation/output-formatters.git", - "reference": "da889e4bce19f145ca4ec5b1725a946f4eb625a9" + "reference": "d78ef59aea19d3e2e5a23f90a055155ee78a0ad5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/da889e4bce19f145ca4ec5b1725a946f4eb625a9", - "reference": "da889e4bce19f145ca4ec5b1725a946f4eb625a9", + "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/d78ef59aea19d3e2e5a23f90a055155ee78a0ad5", + "reference": "d78ef59aea19d3e2e5a23f90a055155ee78a0ad5", "shasum": "" }, "require": { @@ -180,7 +181,7 @@ "symfony/finder": "^2.5|^3|^4" }, "require-dev": { - "g-1-a/composer-test-scenarios": "^2", + "g1a/composer-test-scenarios": "^2", "phpunit/phpunit": "^5.7.27", "satooshi/php-coveralls": "^2", "squizlabs/php_codesniffer": "^2.7", @@ -213,7 +214,7 @@ } ], "description": "Format text by applying transformations provided by plug-in formatters.", - "time": "2018-03-20T15:18:32+00:00" + "time": "2018-05-25T18:02:34+00:00" }, { "name": "consolidation/robo", @@ -702,16 +703,16 @@ }, { "name": "drush/drush", - "version": "8.1.16", + "version": "8.1.17", "source": { "type": "git", "url": "https://github.com/drush-ops/drush.git", - "reference": "bbaff2dc725a5f3eb22006c5de3dc92a2de54b08" + "reference": "7ea681dc7e639f6ddab906e78611d3558f88d9b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drush-ops/drush/zipball/bbaff2dc725a5f3eb22006c5de3dc92a2de54b08", - "reference": "bbaff2dc725a5f3eb22006c5de3dc92a2de54b08", + "url": "https://api.github.com/repos/drush-ops/drush/zipball/7ea681dc7e639f6ddab906e78611d3558f88d9b0", + "reference": "7ea681dc7e639f6ddab906e78611d3558f88d9b0", "shasum": "" }, "require": { @@ -807,7 +808,7 @@ ], "description": "Drush is a command line shell and scripting interface for Drupal, a veritable Swiss Army knife designed to make life easier for those of us who spend some of our working hours hacking away at the command prompt.", "homepage": "http://www.drush.org", - "time": "2018-02-06T21:18:48+00:00" + "time": "2018-05-23T16:58:54+00:00" }, { "name": "grasmash/expander", @@ -1056,6 +1057,84 @@ ], "time": "2017-05-10T09:20:27+00:00" }, + { + "name": "monolog/monolog", + "version": "1.23.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4", + "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "jakub-onderka/php-parallel-lint": "0.9", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpunit/phpunit": "~4.5", + "phpunit/phpunit-mock-objects": "2.3.0", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", + "swiftmailer/swiftmailer": "^5.3|^6.0" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "time": "2017-06-19T01:22:40+00:00" + }, { "name": "nikic/php-parser", "version": "v3.1.5", @@ -1377,21 +1456,22 @@ }, { "name": "symfony/config", - "version": "v3.4.8", + "version": "v3.4.11", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "7c2a9d44f4433863e9bca682e7f03609234657f9" + "reference": "73e055cf2e6467715f187724a0347ea32079967c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/7c2a9d44f4433863e9bca682e7f03609234657f9", - "reference": "7c2a9d44f4433863e9bca682e7f03609234657f9", + "url": "https://api.github.com/repos/symfony/config/zipball/73e055cf2e6467715f187724a0347ea32079967c", + "reference": "73e055cf2e6467715f187724a0347ea32079967c", "shasum": "" }, "require": { "php": "^5.5.9|>=7.0.8", - "symfony/filesystem": "~2.8|~3.0|~4.0" + "symfony/filesystem": "~2.8|~3.0|~4.0", + "symfony/polyfill-ctype": "~1.8" }, "conflict": { "symfony/dependency-injection": "<3.3", @@ -1436,20 +1516,20 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2018-03-19T22:32:39+00:00" + "time": "2018-05-14T16:49:53+00:00" }, { "name": "symfony/console", - "version": "v3.4.8", + "version": "v3.4.11", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "d4bb70fa24d540c309d88a9d6e43fb2d339b1fbf" + "reference": "36f83f642443c46f3cf751d4d2ee5d047d757a27" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/d4bb70fa24d540c309d88a9d6e43fb2d339b1fbf", - "reference": "d4bb70fa24d540c309d88a9d6e43fb2d339b1fbf", + "url": "https://api.github.com/repos/symfony/console/zipball/36f83f642443c46f3cf751d4d2ee5d047d757a27", + "reference": "36f83f642443c46f3cf751d4d2ee5d047d757a27", "shasum": "" }, "require": { @@ -1470,7 +1550,7 @@ "symfony/process": "~3.3|~4.0" }, "suggest": { - "psr/log": "For using the console logger", + "psr/log-implementation": "For using the console logger", "symfony/event-dispatcher": "", "symfony/lock": "", "symfony/process": "" @@ -1505,20 +1585,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2018-04-03T05:22:50+00:00" + "time": "2018-05-16T08:49:21+00:00" }, { "name": "symfony/debug", - "version": "v3.4.8", + "version": "v3.4.11", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "9cf7c2271cfb89ef9727db1b740ca77be57bf9d7" + "reference": "b28fd73fefbac341f673f5efd707d539d6a19f68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/9cf7c2271cfb89ef9727db1b740ca77be57bf9d7", - "reference": "9cf7c2271cfb89ef9727db1b740ca77be57bf9d7", + "url": "https://api.github.com/repos/symfony/debug/zipball/b28fd73fefbac341f673f5efd707d539d6a19f68", + "reference": "b28fd73fefbac341f673f5efd707d539d6a19f68", "shasum": "" }, "require": { @@ -1561,20 +1641,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2018-04-03T05:22:50+00:00" + "time": "2018-05-16T14:03:39+00:00" }, { "name": "symfony/dependency-injection", - "version": "v3.4.8", + "version": "v3.4.11", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "24a68710c6ddc1e3d159a110cef94cedfcf3c611" + "reference": "8a4672aca8db6d807905d695799ea7d83c8e5bba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/24a68710c6ddc1e3d159a110cef94cedfcf3c611", - "reference": "24a68710c6ddc1e3d159a110cef94cedfcf3c611", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8a4672aca8db6d807905d695799ea7d83c8e5bba", + "reference": "8a4672aca8db6d807905d695799ea7d83c8e5bba", "shasum": "" }, "require": { @@ -1632,11 +1712,11 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2018-03-29T11:25:31+00:00" + "time": "2018-05-25T11:57:15+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v3.4.8", + "version": "v3.4.11", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", @@ -1699,20 +1779,21 @@ }, { "name": "symfony/filesystem", - "version": "v3.4.8", + "version": "v3.4.11", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541" + "reference": "8e03ca3fa52a0f56b87506f38cf7bd3f9442b3a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/253a4490b528597aa14d2bf5aeded6f5e5e4a541", - "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/8e03ca3fa52a0f56b87506f38cf7bd3f9442b3a0", + "reference": "8e03ca3fa52a0f56b87506f38cf7bd3f9442b3a0", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-ctype": "~1.8" }, "type": "library", "extra": { @@ -1744,20 +1825,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2018-02-22T10:48:49+00:00" + "time": "2018-05-16T08:49:21+00:00" }, { "name": "symfony/finder", - "version": "v3.4.8", + "version": "v3.4.11", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "bd14efe8b1fabc4de82bf50dce62f05f9a102433" + "reference": "472a92f3df8b247b49ae364275fb32943b9656c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/bd14efe8b1fabc4de82bf50dce62f05f9a102433", - "reference": "bd14efe8b1fabc4de82bf50dce62f05f9a102433", + "url": "https://api.github.com/repos/symfony/finder/zipball/472a92f3df8b247b49ae364275fb32943b9656c6", + "reference": "472a92f3df8b247b49ae364275fb32943b9656c6", "shasum": "" }, "require": { @@ -1793,20 +1874,75 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2018-04-04T05:07:11+00:00" + "time": "2018-05-16T08:49:21+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.8.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/7cc359f1b7b80fc25ed7796be7d96adc9b354bae", + "reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + }, + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "time": "2018-04-30T19:57:29+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.7.0", + "version": "v1.8.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b" + "reference": "3296adf6a6454a050679cde90f95350ad604b171" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b", - "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/3296adf6a6454a050679cde90f95350ad604b171", + "reference": "3296adf6a6454a050679cde90f95350ad604b171", "shasum": "" }, "require": { @@ -1818,7 +1954,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7-dev" + "dev-master": "1.8-dev" } }, "autoload": { @@ -1852,20 +1988,20 @@ "portable", "shim" ], - "time": "2018-01-30T19:27:44+00:00" + "time": "2018-04-26T10:06:28+00:00" }, { "name": "symfony/process", - "version": "v3.4.8", + "version": "v3.4.11", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "4b7d64e852886319e93ddfdecff0d744ab87658b" + "reference": "4cbf2db9abcb01486a21b7a059e03a62fae63187" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/4b7d64e852886319e93ddfdecff0d744ab87658b", - "reference": "4b7d64e852886319e93ddfdecff0d744ab87658b", + "url": "https://api.github.com/repos/symfony/process/zipball/4cbf2db9abcb01486a21b7a059e03a62fae63187", + "reference": "4cbf2db9abcb01486a21b7a059e03a62fae63187", "shasum": "" }, "require": { @@ -1901,20 +2037,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2018-04-03T05:22:50+00:00" + "time": "2018-05-16T08:49:21+00:00" }, { "name": "symfony/translation", - "version": "v3.4.8", + "version": "v3.4.11", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "80e19eaf12cbb546ac40384e5c55c36306823e57" + "reference": "7047f725e35eab768137c677f8c38e4a2a8e38fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/80e19eaf12cbb546ac40384e5c55c36306823e57", - "reference": "80e19eaf12cbb546ac40384e5c55c36306823e57", + "url": "https://api.github.com/repos/symfony/translation/zipball/7047f725e35eab768137c677f8c38e4a2a8e38fb", + "reference": "7047f725e35eab768137c677f8c38e4a2a8e38fb", "shasum": "" }, "require": { @@ -1935,7 +2071,7 @@ "symfony/yaml": "~3.4|~4.0" }, "suggest": { - "psr/log": "To use logging capability in translator", + "psr/log-implementation": "To use logging capability in translator", "symfony/config": "", "symfony/yaml": "" }, @@ -1969,20 +2105,20 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2018-02-22T06:28:18+00:00" + "time": "2018-05-21T10:06:52+00:00" }, { "name": "symfony/var-dumper", - "version": "v3.4.8", + "version": "v3.4.11", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "951643091b39a6fd40fce56cd16e21e12bef3feb" + "reference": "0e6545672d8c9ce70dd472adc2f8b03155a46f73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/951643091b39a6fd40fce56cd16e21e12bef3feb", - "reference": "951643091b39a6fd40fce56cd16e21e12bef3feb", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0e6545672d8c9ce70dd472adc2f8b03155a46f73", + "reference": "0e6545672d8c9ce70dd472adc2f8b03155a46f73", "shasum": "" }, "require": { @@ -2038,24 +2174,25 @@ "debug", "dump" ], - "time": "2018-04-03T20:34:11+00:00" + "time": "2018-04-26T12:42:15+00:00" }, { "name": "symfony/yaml", - "version": "v3.4.8", + "version": "v3.4.11", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "a42f9da85c7c38d59f5e53f076fe81a091f894d0" + "reference": "c5010cc1692ce1fa328b1fb666961eb3d4a85bb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/a42f9da85c7c38d59f5e53f076fe81a091f894d0", - "reference": "a42f9da85c7c38d59f5e53f076fe81a091f894d0", + "url": "https://api.github.com/repos/symfony/yaml/zipball/c5010cc1692ce1fa328b1fb666961eb3d4a85bb0", + "reference": "c5010cc1692ce1fa328b1fb666961eb3d4a85bb0", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-ctype": "~1.8" }, "conflict": { "symfony/console": "<3.4" @@ -2096,7 +2233,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2018-04-03T05:14:20+00:00" + "time": "2018-05-03T23:18:14+00:00" }, { "name": "twig/twig", diff --git a/src/Provision/Console/Logger.php b/src/Provision/Console/Logger.php new file mode 100644 index 00000000..e077b08a --- /dev/null +++ b/src/Provision/Console/Logger.php @@ -0,0 +1,55 @@ +log(self::COMMAND, $output, $context); + } + + /** + * Log a message indicating that it is a console command. + * + * @param $output + * @param array $context + * + * @return bool + */ + public function console($output, $context = []) { + return $this->log(self::CONSOLE, $output, $context); + } + + + /** + * Logging levels from syslog protocol defined in RFC 5424 + * + * @var array $levels Logging levels + */ + protected static $levels = array( + self::DEBUG => 'DEBUG', + self::INFO => 'INFO', + self::NOTICE => 'NOTICE', + self::WARNING => 'WARNING', + self::ERROR => 'ERROR', + self::CRITICAL => 'CRITICAL', + self::ALERT => 'ALERT', + self::EMERGENCY => 'EMERGENCY', + self::COMMAND => 'COMMAND', + self::CONSOLE => 'CONSOLE', + ); + +} \ No newline at end of file diff --git a/src/Provision/Console/ProvisionStyle.php b/src/Provision/Console/ProvisionStyle.php index 558c437a..e2934b4f 100644 --- a/src/Provision/Console/ProvisionStyle.php +++ b/src/Provision/Console/ProvisionStyle.php @@ -4,6 +4,7 @@ use Aegir\Provision\Provision; use Drupal\Console\Core\Style\DrupalStyle; +use Monolog\Handler\StreamHandler; use Robo\Common\InputAwareTrait; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\BufferedOutput; @@ -91,6 +92,36 @@ public function taskInfoBlock($task_id, $op, $status = 'none') { ); } + /** + * {@inheritdoc} + */ + public function write($messages, $newline = false, $type = self::OUTPUT_NORMAL) + { + // Pipe to monolog + if (!is_array($messages)) { + $messages = [$messages]; + } + Provision::getProvision()->getLogger()->console(implode("\n", $messages)); + parent::write($messages, $newline, $type); + } + + /** + * {@inheritdoc} + */ + public function writeln($messages, $type = self::OUTPUT_NORMAL) + { + // Pipe to monolog + if (!is_array($messages)) { + $messages = [$messages]; + } + + // @TODO: Use one or both based on config. + Provision::getProvision()->getLogger()->pushHandler(new LogHandler()); + Provision::getProvision()->getLogger()->console(implode("\n", $messages)); + } + + + /** * Use to display a directory $ command. * diff --git a/src/Provision/Context.php b/src/Provision/Context.php index 04028192..75deaa32 100644 --- a/src/Provision/Context.php +++ b/src/Provision/Context.php @@ -995,21 +995,21 @@ public function shell_exec($command, $dir = NULL, $return = 'stdout') { $this->type == 'server'? $this->getProperty('server_config_path'): $this->getProperty('root') ; - - if ($this->getProvision()->getOutput()->isVerbose()) { - $this->getProvision()->io()->commandBlock($command, $effective_wd); - $this->getProvision()->io()->customLite("Writing output to $tmp_output_file", ProvisionStyle::ICON_FILE, 'comment'); - - // If verbose, Use tee so we see it and it saves to file. - // Thanks to https://askubuntu.com/a/731237 - // Uses "2>&1 |" so it works with older bash shells. - $command = "$command 2>&1 | tee -a $tmp_output_file; exit \${PIPESTATUS[0]} -"; - } - else { - // If not verbose, just save it to file. - $command .= "> $tmp_output_file 2>&1"; - } +// +// if ($this->getProvision()->getOutput()->isVerbose()) { +// $this->getProvision()->io()->commandBlock($command, $effective_wd); +// $this->getProvision()->io()->customLite("Writing output to $tmp_output_file", ProvisionStyle::ICON_FILE, 'comment'); +// +// // If verbose, Use tee so we see it and it saves to file. +// // Thanks to https://askubuntu.com/a/731237 +// // Uses "2>&1 |" so it works with older bash shells. +// $command = "$command 2>&1 | tee -a $tmp_output_file; exit \${PIPESTATUS[0]} +//"; +// } +// else { +// // If not verbose, just save it to file. +// $command .= "> $tmp_output_file 2>&1"; +// } // Output and Errors to file. $process = $this->process_exec($command, $effective_wd); @@ -1036,7 +1036,7 @@ public function process_exec($command, $dir = NULL) { $process = new Process($command); $process->setTimeout(null); - $process->setTty(true); +// $process->setTty(true); $env = $_SERVER; @@ -1055,12 +1055,15 @@ public function process_exec($command, $dir = NULL) { $process->setWorkingDirectory($dir); } - $io = $this->getProvision()->io(); - $verbose = (bool) $this->getProvision()->getOutput()->isVerbose(); - $process->run(function ($type, $buffer) use ($verbose, $io) { - if ($verbose) { - $io->writeln(trim($buffer)); - } + $this->getProvision()->getLogger()->command('Running {command} ...', [ + 'command' => $process->getCommandLine(), + ]); + $process->run(function ($type, $buffer) use ($command) { + $this->getProvision()->getLogger()->console('{buffer}', [ + 'command' => $command, + 'buffer' => trim($buffer), + 'time' => time(), + ]); }); return $process; } diff --git a/src/Provision/Provision.php b/src/Provision/Provision.php index 38d9df36..c32a5f06 100644 --- a/src/Provision/Provision.php +++ b/src/Provision/Provision.php @@ -15,6 +15,10 @@ use Aegir\Provision\Robo\ProvisionCollectionBuilder; use Aegir\Provision\Robo\ProvisionExecutor; use Aegir\Provision\Robo\ProvisionTasks; + +use Monolog\Logger; +use Psr\Log\LoggerInterface; + use Drupal\Console\Core\Style\DrupalStyle; use League\Container\Container; use League\Container\ContainerAwareInterface; @@ -119,7 +123,7 @@ public function __construct( OutputInterface $output = NULL ) { - $logger = new ConsoleLogger($output); + $logger = new \Aegir\Provision\Console\Logger('provision'); $this->setLogger($logger); $this @@ -150,7 +154,7 @@ public function __construct( $this->runner->setSelfUpdateRepository(self::REPOSITORY); $this->setBuilder($container->get('builder')); - $this->setLogger($container->get('logger')); +// $this->setLogger($container->get('logger')); $this->tasks = $container->get('tasks'); $this->console = new ConsoleOutput($output->getVerbosity()); @@ -291,7 +295,7 @@ public function getApplication() * Gets Logger object. * Returns the currently active Logger instance. * - * @return \Psr\Log\LoggerInterface + * @return \Aegir\Provision\Console\Logger */ public function getLogger() {