From 7a6add5afb53daa6680e09248e14a85a256ca2e0 Mon Sep 17 00:00:00 2001 From: Tom Robertshaw Date: Mon, 14 Dec 2015 21:22:34 +0000 Subject: [PATCH 1/3] Fixes #14: Add self-update function - Use library to manage downloading new versions - Depends on manifest.json file to be in S3 and the update process to include updating this. --- composer.json | 3 +- composer.lock | 750 ++++++++++++------ src/Meanbee/Magedbm/Application.php | 4 +- .../Magedbm/Command/SelfUpdateCommand.php | 96 +++ 4 files changed, 629 insertions(+), 224 deletions(-) create mode 100644 src/Meanbee/Magedbm/Command/SelfUpdateCommand.php diff --git a/composer.json b/composer.json index ef92c59..21a2765 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,8 @@ "n98/magerun": "1.*", "aws/aws-sdk-php": "2.*", "piwik/ini": "dev-master", - "ifsnop/mysqldump-php":"2.*" + "ifsnop/mysqldump-php":"2.*", + "herrera-io/phar-update": "2.*" }, "require-dev": {}, "bin": [ diff --git a/composer.lock b/composer.lock index 2065df4..598ef01 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "d8390947474bf349eebc1a3f2d61b0f7", - "content-hash": "79d0f7ca999974d25282693b2d19cfd2", + "hash": "5b575192ab9ceefee87e56708d44ef60", + "content-hash": "e1ace7304ccf9c2b4eb182d0bdb76e66", "packages": [ { "name": "aws/aws-sdk-php", @@ -13,12 +13,12 @@ "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "92642ca4906e6681a1301971cf41500d7c68581c" + "reference": "54b67f902bb2c5bbab481bc3c46537752a018830" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/92642ca4906e6681a1301971cf41500d7c68581c", - "reference": "92642ca4906e6681a1301971cf41500d7c68581c", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/54b67f902bb2c5bbab481bc3c46537752a018830", + "reference": "54b67f902bb2c5bbab481bc3c46537752a018830", "shasum": "" }, "require": { @@ -68,7 +68,7 @@ "s3", "sdk" ], - "time": "2015-09-17 00:17:24" + "time": "2015-11-16 22:34:08" }, { "name": "composer/composer", @@ -76,29 +76,30 @@ "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "15face5432d7b7334db6ac69fac0190971cafa6e" + "reference": "1c525b76f81123af180743d31c208c29351cf931" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/15face5432d7b7334db6ac69fac0190971cafa6e", - "reference": "15face5432d7b7334db6ac69fac0190971cafa6e", + "url": "https://api.github.com/repos/composer/composer/zipball/1c525b76f81123af180743d31c208c29351cf931", + "reference": "1c525b76f81123af180743d31c208c29351cf931", "shasum": "" }, "require": { - "composer/spdx-licenses": "~1.0", + "composer/semver": "^1.0", + "composer/spdx-licenses": "^1.0", "justinrainbow/json-schema": "^1.4.4", - "php": ">=5.3.2", - "seld/cli-prompt": "~1.0", - "seld/jsonlint": "~1.0", - "seld/phar-utils": "~1.0", - "symfony/console": "~2.5", - "symfony/filesystem": "~2.5", - "symfony/finder": "~2.2", - "symfony/process": "~2.1" + "php": "^5.3.2 || ^7.0", + "seld/cli-prompt": "^1.0", + "seld/jsonlint": "^1.4", + "seld/phar-utils": "^1.0", + "symfony/console": "^2.5 || ^3.0", + "symfony/filesystem": "^2.5 || ^3.0", + "symfony/finder": "^2.2 || ^3.0", + "symfony/process": "^2.1 || ^3.0" }, "require-dev": { - "phpunit/phpunit": "~4.5", - "phpunit/phpunit-mock-objects": "2.3.0" + "phpunit/phpunit": "^4.5 || ^5.0.5", + "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0" }, "suggest": { "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", @@ -114,8 +115,8 @@ } }, "autoload": { - "psr-0": { - "Composer": "src/" + "psr-4": { + "Composer\\": "src/Composer" } }, "notification-url": "https://packagist.org/downloads/", @@ -141,7 +142,69 @@ "dependency", "package" ], - "time": "2015-09-23 17:46:25" + "time": "2015-12-09 15:47:26" + }, + { + "name": "composer/semver", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "0faeb6e433f6b352f0dc55ec1faf5c6b605a35d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/0faeb6e433f6b352f0dc55ec1faf5c6b605a35d3", + "reference": "0faeb6e433f6b352f0dc55ec1faf5c6b605a35d3", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.5 || ^5.0.5", + "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "time": "2015-11-10 11:17:42" }, { "name": "composer/spdx-licenses", @@ -149,20 +212,20 @@ "source": { "type": "git", "url": "https://github.com/composer/spdx-licenses.git", - "reference": "c4b32b826a3e613dc09956f362ae76518db8d278" + "reference": "022fc25ca664f612b1e7007e0d87642ef489f000" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/c4b32b826a3e613dc09956f362ae76518db8d278", - "reference": "c4b32b826a3e613dc09956f362ae76518db8d278", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/022fc25ca664f612b1e7007e0d87642ef489f000", + "reference": "022fc25ca664f612b1e7007e0d87642ef489f000", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^5.3.2 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.5", - "phpunit/phpunit-mock-objects": "~2.3" + "phpunit/phpunit": "^4.5 || ^5.0.5", + "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0" }, "type": "library", "extra": { @@ -180,10 +243,6 @@ "MIT" ], "authors": [ - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com" - }, { "name": "Nils Adermann", "email": "naderman@naderman.de", @@ -193,6 +252,11 @@ "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" } ], "description": "SPDX licenses list and validation library.", @@ -201,7 +265,7 @@ "spdx", "validator" ], - "time": "2015-09-07 16:27:51" + "time": "2015-11-04 10:29:55" }, { "name": "dnoegel/php-xdg-base-dir", @@ -238,33 +302,35 @@ }, { "name": "fzaninotto/faker", - "version": "v1.4.0", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/fzaninotto/Faker.git", - "reference": "010c7efedd88bf31141a02719f51fb44c732d5a0" + "reference": "3037df47eca2e534f62f061415a071f9b5d1a1a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/010c7efedd88bf31141a02719f51fb44c732d5a0", - "reference": "010c7efedd88bf31141a02719f51fb44c732d5a0", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/3037df47eca2e534f62f061415a071f9b5d1a1a4", + "reference": "3037df47eca2e534f62f061415a071f9b5d1a1a4", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { + "ext-intl": "*", "phpunit/phpunit": "~4.0", "squizlabs/php_codesniffer": "~1.5" }, "type": "library", "extra": { - "branch-alias": [] + "branch-alias": { + "dev-master": "1.6.x-dev" + } }, "autoload": { - "psr-0": { - "Faker": "src/", - "Faker\\PHPUnit": "test/" + "psr-4": { + "Faker\\": "src/Faker/" } }, "notification-url": "https://packagist.org/downloads/", @@ -282,7 +348,7 @@ "faker", "fixtures" ], - "time": "2014-06-04 14:43:02" + "time": "2015-11-30 17:35:42" }, { "name": "guzzle/guzzle", @@ -379,18 +445,186 @@ ], "time": "2015-04-29 17:06:53" }, + { + "name": "herrera-io/json", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/kherge-abandoned/php-json.git", + "reference": "60c696c9370a1e5136816ca557c17f82a6fa83f1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/kherge-abandoned/php-json/zipball/60c696c9370a1e5136816ca557c17f82a6fa83f1", + "reference": "60c696c9370a1e5136816ca557c17f82a6fa83f1", + "shasum": "" + }, + "require": { + "ext-json": "*", + "justinrainbow/json-schema": ">=1.0,<2.0-dev", + "php": ">=5.3.3", + "seld/jsonlint": ">=1.0,<2.0-dev" + }, + "require-dev": { + "herrera-io/phpunit-test-case": "1.*", + "mikey179/vfsstream": "1.1.0", + "phpunit/phpunit": "3.7.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "files": [ + "src/lib/json_version.php" + ], + "psr-0": { + "Herrera\\Json": "src/lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kevin Herrera", + "email": "kevin@herrera.io", + "homepage": "http://kevin.herrera.io" + } + ], + "description": "A library for simplifying JSON linting and validation.", + "homepage": "http://herrera-io.github.com/php-json", + "keywords": [ + "json", + "lint", + "schema", + "validate" + ], + "time": "2013-10-30 16:51:34" + }, + { + "name": "herrera-io/phar-update", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/kherge-abandoned/php-phar-update.git", + "reference": "15643c90d3d43620a4f45c910e6afb7a0ad4b488" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/kherge-abandoned/php-phar-update/zipball/15643c90d3d43620a4f45c910e6afb7a0ad4b488", + "reference": "15643c90d3d43620a4f45c910e6afb7a0ad4b488", + "shasum": "" + }, + "require": { + "herrera-io/json": "1.*", + "herrera-io/version": "1.*", + "php": ">=5.3.3" + }, + "require-dev": { + "herrera-io/phpunit-test-case": "1.*", + "mikey179/vfsstream": "1.1.0", + "phpunit/phpunit": "3.7.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "files": [ + "src/lib/constants.php" + ], + "psr-0": { + "Herrera\\Phar\\Update": "src/lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kevin Herrera", + "email": "kevin@herrera.io", + "homepage": "http://kevin.herrera.io" + } + ], + "description": "A library for self-updating Phars.", + "homepage": "http://herrera-io.github.com/php-phar-update", + "keywords": [ + "phar", + "update" + ], + "time": "2013-11-09 17:13:13" + }, + { + "name": "herrera-io/version", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/kherge-abandoned/php-version.git", + "reference": "23a91b15ce3290e72729f61f589b21ea2cefe05e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/kherge-abandoned/php-version/zipball/23a91b15ce3290e72729f61f589b21ea2cefe05e", + "reference": "23a91b15ce3290e72729f61f589b21ea2cefe05e", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "herrera-io/phpunit-test-case": "1.*", + "phpunit/phpunit": "3.7.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-0": { + "Herrera\\Version": "src/lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kevin Herrera", + "email": "kevin@herrera.io", + "homepage": "http://kevin.herrera.io" + } + ], + "description": "A library for creating, editing, and comparing semantic versioning numbers.", + "homepage": "http://github.com/herrera-io/php-version", + "keywords": [ + "semantic", + "version" + ], + "time": "2014-08-10 03:40:12" + }, { "name": "ifsnop/mysqldump-php", - "version": "v2.0", + "version": "v2.1", "source": { "type": "git", "url": "https://github.com/ifsnop/mysqldump-php.git", - "reference": "2f850d6c3ea6d55ca2cb7b37bb568264264f728e" + "reference": "701024dd160f15796bed8130c3bdeb26c634785a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ifsnop/mysqldump-php/zipball/2f850d6c3ea6d55ca2cb7b37bb568264264f728e", - "reference": "2f850d6c3ea6d55ca2cb7b37bb568264264f728e", + "url": "https://api.github.com/repos/ifsnop/mysqldump-php/zipball/701024dd160f15796bed8130c3bdeb26c634785a", + "reference": "701024dd160f15796bed8130c3bdeb26c634785a", "shasum": "" }, "require": { @@ -429,7 +663,7 @@ "pdo", "sqlite" ], - "time": "2015-09-10 19:58:38" + "time": "2015-10-19 15:58:11" }, { "name": "jakub-onderka/php-console-color", @@ -622,35 +856,35 @@ }, { "name": "n98/magerun", - "version": "1.97.5", + "version": "1.97.7", "source": { "type": "git", "url": "https://github.com/netz98/n98-magerun.git", - "reference": "a80a6ee189d5a944175aa7f91b58d6a7e18d8cab" + "reference": "5a38bc5c009e40e59eb34001aba478e14d7775c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/netz98/n98-magerun/zipball/a80a6ee189d5a944175aa7f91b58d6a7e18d8cab", - "reference": "a80a6ee189d5a944175aa7f91b58d6a7e18d8cab", + "url": "https://api.github.com/repos/netz98/n98-magerun/zipball/5a38bc5c009e40e59eb34001aba478e14d7775c3", + "reference": "5a38bc5c009e40e59eb34001aba478e14d7775c3", "shasum": "" }, "require": { "composer/composer": "1.0.*@dev", - "fzaninotto/faker": "1.4.*", - "n98/junit-xml": "1.0.*", + "fzaninotto/faker": "~1.4", + "n98/junit-xml": "~1.0", "php": ">=5.3.3", - "psy/psysh": "@stable", - "symfony/console": "2.6.*", - "symfony/event-dispatcher": "2.6.*", - "symfony/finder": "2.6.*", - "symfony/process": "2.6.*", - "symfony/validator": "2.6.*", - "symfony/yaml": "2.6.*", - "twig/twig": "1.*" + "psy/psysh": "~0.4", + "symfony/console": "~2.3", + "symfony/event-dispatcher": "~2.3", + "symfony/finder": "~2.3", + "symfony/process": "~2.3", + "symfony/validator": "~2.3", + "symfony/yaml": "~2.3", + "twig/twig": "~1.0" }, "require-dev": { - "mikey179/vfsstream": "1.4.*", - "phpunit/phpunit": "4.1.*" + "mikey179/vfsstream": "~1.4", + "phpunit/phpunit": "~4.1" }, "bin": [ "bin/n98-magerun" @@ -684,36 +918,42 @@ "magento", "magerun" ], - "time": "2015-08-16 16:30:00" + "time": "2015-11-07 02:10:14" }, { "name": "nikic/php-parser", - "version": "1.x-dev", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51" + "reference": "719ca71d4ac80e1985dcd91dd8ec5a47db58ad80" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51", - "reference": "f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/719ca71d4ac80e1985dcd91dd8ec5a47db58ad80", + "reference": "719ca71d4ac80e1985dcd91dd8ec5a47db58ad80", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=5.3" + "php": ">=5.4" }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "bin": [ + "bin/php-parse" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "2.0-dev" } }, "autoload": { - "files": [ - "lib/bootstrap.php" - ] + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -729,7 +969,7 @@ "parser", "php" ], - "time": "2015-09-19 14:15:08" + "time": "2015-12-07 11:12:00" }, { "name": "piwik/ini", @@ -766,29 +1006,29 @@ }, { "name": "psy/psysh", - "version": "dev-master", + "version": "dev-develop", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "aaf8772ade08b5f0f6830774a5d5c2f800415975" + "reference": "753011e4e8fb5a14fdfb1cb0891b668dc8c24e50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/aaf8772ade08b5f0f6830774a5d5c2f800415975", - "reference": "aaf8772ade08b5f0f6830774a5d5c2f800415975", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/753011e4e8fb5a14fdfb1cb0891b668dc8c24e50", + "reference": "753011e4e8fb5a14fdfb1cb0891b668dc8c24e50", "shasum": "" }, "require": { "dnoegel/php-xdg-base-dir": "0.1", "jakub-onderka/php-console-highlighter": "0.3.*", - "nikic/php-parser": "^1.2.1", + "nikic/php-parser": "^1.2.1|~2.0", "php": ">=5.3.9", "symfony/console": "~2.3.10|^2.4.2|~3.0", "symfony/var-dumper": "~2.7|~3.0" }, "require-dev": { "fabpot/php-cs-fixer": "~1.5", - "phpunit/phpunit": "~3.7|~4.0", + "phpunit/phpunit": "~3.7|~4.0|~5.0", "squizlabs/php_codesniffer": "~2.0", "symfony/finder": "~2.1|~3.0" }, @@ -804,15 +1044,15 @@ "type": "library", "extra": { "branch-alias": { - "dev-develop": "0.6.x-dev" + "dev-develop": "0.7.x-dev" } }, "autoload": { "files": [ "src/Psy/functions.php" ], - "psr-0": { - "Psy\\": "src/" + "psr-4": { + "Psy\\": "src/Psy/" } }, "notification-url": "https://packagist.org/downloads/", @@ -834,7 +1074,7 @@ "interactive", "shell" ], - "time": "2015-07-16 15:26:57" + "time": "2015-11-21 20:49:56" }, { "name": "seld/cli-prompt", @@ -886,20 +1126,20 @@ }, { "name": "seld/jsonlint", - "version": "1.3.1", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "863ae85c6d3ef60ca49cb12bd051c4a0648c40c4" + "reference": "66834d3e3566bb5798db7294619388786ae99394" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/863ae85c6d3ef60ca49cb12bd051c4a0648c40c4", - "reference": "863ae85c6d3ef60ca49cb12bd051c4a0648c40c4", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/66834d3e3566bb5798db7294619388786ae99394", + "reference": "66834d3e3566bb5798db7294619388786ae99394", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^5.3 || ^7.0" }, "bin": [ "bin/jsonlint" @@ -928,7 +1168,7 @@ "parser", "validator" ], - "time": "2015-01-04 21:18:15" + "time": "2015-11-21 02:21:41" }, { "name": "seld/phar-utils", @@ -936,12 +1176,12 @@ "source": { "type": "git", "url": "https://github.com/Seldaek/phar-utils.git", - "reference": "336bb5ee20de511f3c1a164222fcfd194afcab3a" + "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/336bb5ee20de511f3c1a164222fcfd194afcab3a", - "reference": "336bb5ee20de511f3c1a164222fcfd194afcab3a", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/7009b5139491975ef6486545a39f3e6dad5ac30a", + "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a", "shasum": "" }, "require": { @@ -972,31 +1212,30 @@ "keywords": [ "phra" ], - "time": "2015-05-01 12:45:48" + "time": "2015-10-13 18:44:15" }, { "name": "symfony/console", - "version": "2.6.x-dev", - "target-dir": "Symfony/Component/Console", + "version": "2.8.x-dev", "source": { "type": "git", - "url": "https://github.com/symfony/Console.git", - "reference": "0e5e18ae09d3f5c06367759be940e9ed3f568359" + "url": "https://github.com/symfony/console.git", + "reference": "ec55a12a19fd794126f3d31a12801d92a349533b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Console/zipball/0e5e18ae09d3f5c06367759be940e9ed3f568359", - "reference": "0e5e18ae09d3f5c06367759be940e9ed3f568359", + "url": "https://api.github.com/repos/symfony/console/zipball/ec55a12a19fd794126f3d31a12801d92a349533b", + "reference": "ec55a12a19fd794126f3d31a12801d92a349533b", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9", + "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { "psr/log": "~1.0", - "symfony/event-dispatcher": "~2.1", - "symfony/phpunit-bridge": "~2.7", - "symfony/process": "~2.1" + "symfony/event-dispatcher": "~2.1|~3.0.0", + "symfony/process": "~2.1|~3.0.0" }, "suggest": { "psr/log": "For using the console logger", @@ -1006,13 +1245,16 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.8-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Console\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1030,33 +1272,31 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2015-07-26 09:08:40" + "time": "2015-12-12 20:05:07" }, { "name": "symfony/event-dispatcher", - "version": "2.6.x-dev", - "target-dir": "Symfony/Component/EventDispatcher", + "version": "2.8.x-dev", "source": { "type": "git", - "url": "https://github.com/symfony/EventDispatcher.git", - "reference": "672593bc4b0043a0acf91903bb75a1c82d8f2e02" + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "a5eb815363c0388e83247e7e9853e5dbc14999cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/672593bc4b0043a0acf91903bb75a1c82d8f2e02", - "reference": "672593bc4b0043a0acf91903bb75a1c82d8f2e02", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a5eb815363c0388e83247e7e9853e5dbc14999cc", + "reference": "a5eb815363c0388e83247e7e9853e5dbc14999cc", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~2.0,>=2.0.5", - "symfony/dependency-injection": "~2.6", - "symfony/expression-language": "~2.6", - "symfony/phpunit-bridge": "~2.7", - "symfony/stopwatch": "~2.3" + "symfony/config": "~2.0,>=2.0.5|~3.0.0", + "symfony/dependency-injection": "~2.6|~3.0.0", + "symfony/expression-language": "~2.6|~3.0.0", + "symfony/stopwatch": "~2.3|~3.0.0" }, "suggest": { "symfony/dependency-injection": "", @@ -1065,13 +1305,16 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.8-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\EventDispatcher\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1089,28 +1332,25 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2015-05-02 15:18:45" + "time": "2015-10-30 20:15:42" }, { "name": "symfony/filesystem", "version": "2.8.x-dev", "source": { "type": "git", - "url": "https://github.com/symfony/Filesystem.git", - "reference": "287fc0b1dcb11ff729eeefc20441c08eaf628f29" + "url": "https://github.com/symfony/filesystem.git", + "reference": "40ce10a959a67ec1db818ee3947ec474036eeb43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Filesystem/zipball/287fc0b1dcb11ff729eeefc20441c08eaf628f29", - "reference": "287fc0b1dcb11ff729eeefc20441c08eaf628f29", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/40ce10a959a67ec1db818ee3947ec474036eeb43", + "reference": "40ce10a959a67ec1db818ee3947ec474036eeb43", "shasum": "" }, "require": { "php": ">=5.3.9" }, - "require-dev": { - "symfony/phpunit-bridge": "~2.7|~3.0.0" - }, "type": "library", "extra": { "branch-alias": { @@ -1120,7 +1360,10 @@ "autoload": { "psr-4": { "Symfony\\Component\\Filesystem\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1138,39 +1381,38 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2015-09-09 18:05:45" + "time": "2015-12-05 11:09:21" }, { "name": "symfony/finder", - "version": "2.6.x-dev", - "target-dir": "Symfony/Component/Finder", + "version": "2.8.x-dev", "source": { "type": "git", - "url": "https://github.com/symfony/Finder.git", - "reference": "203a10f928ae30176deeba33512999233181dd28" + "url": "https://github.com/symfony/finder.git", + "reference": "dd41ae57f4f737be271d944a0cc5f5f21203a7c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Finder/zipball/203a10f928ae30176deeba33512999233181dd28", - "reference": "203a10f928ae30176deeba33512999233181dd28", + "url": "https://api.github.com/repos/symfony/finder/zipball/dd41ae57f4f737be271d944a0cc5f5f21203a7c6", + "reference": "dd41ae57f4f737be271d944a0cc5f5f21203a7c6", "shasum": "" }, "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "symfony/phpunit-bridge": "~2.7" + "php": ">=5.3.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.8-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Finder\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1188,39 +1430,97 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2015-07-09 16:02:48" + "time": "2015-12-05 11:09:21" }, { - "name": "symfony/process", - "version": "2.6.x-dev", - "target-dir": "Symfony/Component/Process", + "name": "symfony/polyfill-mbstring", + "version": "dev-master", "source": { "type": "git", - "url": "https://github.com/symfony/Process.git", - "reference": "57f1e88bb5dafa449b83f9f265b11d52d517b3e9" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "49ff736bd5d41f45240cec77b44967d76e0c3d25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Process/zipball/57f1e88bb5dafa449b83f9f265b11d52d517b3e9", - "reference": "57f1e88bb5dafa449b83f9f265b11d52d517b3e9", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/49ff736bd5d41f45240cec77b44967d76e0c3d25", + "reference": "49ff736bd5d41f45240cec77b44967d76e0c3d25", "shasum": "" }, "require": { "php": ">=5.3.3" }, - "require-dev": { - "symfony/phpunit-bridge": "~2.7" + "suggest": { + "ext-mbstring": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "1.0-dev" } }, "autoload": { - "psr-0": { - "Symfony\\Component\\Process\\": "" + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2015-11-20 09:19:13" + }, + { + "name": "symfony/process", + "version": "2.8.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "d6a21350fdce3e7f1a8ab0ed6952b358076278d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/d6a21350fdce3e7f1a8ab0ed6952b358076278d8", + "reference": "d6a21350fdce3e7f1a8ab0ed6952b358076278d8", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1238,34 +1538,34 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2015-06-30 16:10:16" + "time": "2015-12-10 17:11:25" }, { "name": "symfony/translation", - "version": "2.8.x-dev", + "version": "3.0.x-dev", "source": { "type": "git", - "url": "https://github.com/symfony/Translation.git", - "reference": "7707bb8e88cc67b2e13013f3d28c616515cc0ff2" + "url": "https://github.com/symfony/translation.git", + "reference": "dff0867826a7068d673801b7522f8e2634016ef9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Translation/zipball/7707bb8e88cc67b2e13013f3d28c616515cc0ff2", - "reference": "7707bb8e88cc67b2e13013f3d28c616515cc0ff2", + "url": "https://api.github.com/repos/symfony/translation/zipball/dff0867826a7068d673801b7522f8e2634016ef9", + "reference": "dff0867826a7068d673801b7522f8e2634016ef9", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.5.9", + "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/config": "<2.7" + "symfony/config": "<2.8" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~2.7", - "symfony/intl": "~2.4|~3.0.0", - "symfony/phpunit-bridge": "~2.7|~3.0.0", - "symfony/yaml": "~2.2|~3.0.0" + "symfony/config": "~2.8|~3.0", + "symfony/intl": "~2.8|~3.0", + "symfony/yaml": "~2.8|~3.0" }, "suggest": { "psr/log": "To use logging capability in translator", @@ -1275,13 +1575,16 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "3.0-dev" } }, "autoload": { "psr-4": { "Symfony\\Component\\Translation\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1299,39 +1602,36 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2015-09-21 10:22:36" + "time": "2015-12-05 17:45:07" }, { "name": "symfony/validator", - "version": "2.6.x-dev", - "target-dir": "Symfony/Component/Validator", + "version": "2.8.x-dev", "source": { "type": "git", - "url": "https://github.com/symfony/Validator.git", - "reference": "fccfab79928e612eedca96dcf3a9e8efd2ee495f" + "url": "https://github.com/symfony/validator.git", + "reference": "f3651e0364ace53780715b621c98afc38df77f60" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Validator/zipball/fccfab79928e612eedca96dcf3a9e8efd2ee495f", - "reference": "fccfab79928e612eedca96dcf3a9e8efd2ee495f", + "url": "https://api.github.com/repos/symfony/validator/zipball/f3651e0364ace53780715b621c98afc38df77f60", + "reference": "f3651e0364ace53780715b621c98afc38df77f60", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/translation": "~2.0,>=2.0.5" + "php": ">=5.3.9", + "symfony/translation": "~2.4|~3.0.0" }, "require-dev": { "doctrine/annotations": "~1.0", "doctrine/cache": "~1.0", - "doctrine/common": "~2.3", "egulias/email-validator": "~1.2,>=1.2.1", - "symfony/config": "~2.2", - "symfony/expression-language": "~2.4", - "symfony/http-foundation": "~2.1", - "symfony/intl": "~2.3", - "symfony/phpunit-bridge": "~2.7", - "symfony/property-access": "~2.3", - "symfony/yaml": "~2.0,>=2.0.5" + "symfony/config": "~2.2|~3.0.0", + "symfony/expression-language": "~2.4|~3.0.0", + "symfony/http-foundation": "~2.1|~3.0.0", + "symfony/intl": "~2.4|~3.0.0", + "symfony/property-access": "~2.3|~3.0.0", + "symfony/yaml": "~2.0,>=2.0.5|~3.0.0" }, "suggest": { "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", @@ -1347,13 +1647,16 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.8-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Validator\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1371,7 +1674,7 @@ ], "description": "Symfony Validator Component", "homepage": "https://symfony.com", - "time": "2015-07-01 19:58:06" + "time": "2015-12-10 08:10:18" }, { "name": "symfony/var-dumper", @@ -1379,19 +1682,20 @@ "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "a13774746c9ba52e0dc5b0fbc6419a5428d8ee94" + "reference": "14ed95dc176e56b2258fea3deb936b9488de1dbe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a13774746c9ba52e0dc5b0fbc6419a5428d8ee94", - "reference": "a13774746c9ba52e0dc5b0fbc6419a5428d8ee94", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/14ed95dc176e56b2258fea3deb936b9488de1dbe", + "reference": "14ed95dc176e56b2258fea3deb936b9488de1dbe", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.5.9", + "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { - "symfony/phpunit-bridge": "~2.8|~3.0" + "twig/twig": "~1.20|~2.0" }, "suggest": { "ext-symfony_debug": "" @@ -1399,7 +1703,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -1408,7 +1712,10 @@ ], "psr-4": { "Symfony\\Component\\VarDumper\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1430,39 +1737,38 @@ "debug", "dump" ], - "time": "2015-09-22 14:11:08" + "time": "2015-12-05 11:13:35" }, { "name": "symfony/yaml", - "version": "2.6.x-dev", - "target-dir": "Symfony/Component/Yaml", + "version": "2.8.x-dev", "source": { "type": "git", - "url": "https://github.com/symfony/Yaml.git", - "reference": "c044d1744b8e91aaaa0d9bac683ab87ec7cbf359" + "url": "https://github.com/symfony/yaml.git", + "reference": "aceecdb89565ebdedd908aaf327f5c34305be981" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Yaml/zipball/c044d1744b8e91aaaa0d9bac683ab87ec7cbf359", - "reference": "c044d1744b8e91aaaa0d9bac683ab87ec7cbf359", + "url": "https://api.github.com/repos/symfony/yaml/zipball/aceecdb89565ebdedd908aaf327f5c34305be981", + "reference": "aceecdb89565ebdedd908aaf327f5c34305be981", "shasum": "" }, "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "symfony/phpunit-bridge": "~2.7" + "php": ">=5.3.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.8-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Yaml\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1480,7 +1786,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2015-07-26 08:59:42" + "time": "2015-12-05 13:47:06" }, { "name": "twig/twig", @@ -1488,12 +1794,12 @@ "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "f0b5b8ce8e9905d88c33524e0294149fda6121e2" + "reference": "db93842e80d758f6c74c3e1f1f088badb3fc84f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/f0b5b8ce8e9905d88c33524e0294149fda6121e2", - "reference": "f0b5b8ce8e9905d88c33524e0294149fda6121e2", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/db93842e80d758f6c74c3e1f1f088badb3fc84f0", + "reference": "db93842e80d758f6c74c3e1f1f088badb3fc84f0", "shasum": "" }, "require": { @@ -1506,7 +1812,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.22-dev" + "dev-master": "1.23-dev" } }, "autoload": { @@ -1541,7 +1847,7 @@ "keywords": [ "templating" ], - "time": "2015-09-22 14:03:12" + "time": "2015-11-17 12:22:13" } ], "packages-dev": [], diff --git a/src/Meanbee/Magedbm/Application.php b/src/Meanbee/Magedbm/Application.php index 12637af..9797575 100644 --- a/src/Meanbee/Magedbm/Application.php +++ b/src/Meanbee/Magedbm/Application.php @@ -6,12 +6,13 @@ use Meanbee\Magedbm\Command\GetCommand; use Meanbee\Magedbm\Command\ListCommand; use Meanbee\Magedbm\Command\PutCommand; +use Meanbee\Magedbm\Command\SelfUpdateCommand; class Application extends \Symfony\Component\Console\Application { const APP_NAME = 'Magedbm'; - const APP_VERSION = '1.0.0'; + const APP_VERSION = '1.3.2'; protected $autoloader; @@ -28,6 +29,7 @@ public function __construct($autoloader = null) $this->add(new GetCommand()); $this->add(new ListCommand()); $this->add(new PutCommand()); + $this->add(new SelfUpdateCommand()); } public function getAutoloader() diff --git a/src/Meanbee/Magedbm/Command/SelfUpdateCommand.php b/src/Meanbee/Magedbm/Command/SelfUpdateCommand.php new file mode 100644 index 0000000..f6cead1 --- /dev/null +++ b/src/Meanbee/Magedbm/Command/SelfUpdateCommand.php @@ -0,0 +1,96 @@ +setName('phar:update') + ->setAliases(array('selfupdate', 'self-update')) + ->addArgument( + 'version', + InputArgument::OPTIONAL, + 'Updates to version-number (i.e. 1.3.2). When omitted will update to the latest version' + ) + ->addOption('major', 'm', InputOption::VALUE_NONE, 'Lock to current major version') + ->setDescription('Update to the version of magedbm.'); + } + + /** + * Execute the command. + * + * @param InputInterface $input + * @param OutputInterface $output + * + * @throws \Exception + * @return int + */ + protected function execute(InputInterface $input, OutputInterface $output) + { + $manager = $this->createManager($output); + $version = $input->getArgument('version') + ? $input->getArgument('version') + : $this->getApplication()->getVersion(); + $allowMajor = $input->getOption('major'); + + $this->updateCurrentVersion($manager, $version, $allowMajor, $output); + } + + /** + * Returns manager instance or exit with status code 1 on failure. + * + * @param OutputInterface $output + * + * @return \Herrera\Phar\Update\Manager + */ + private function createManager(OutputInterface $output) + { + try { + return new Manager(Manifest::loadFile(self::MANIFEST_FILE)); + } catch (FileException $e) { + $output->writeln('Unable to search for updates.'); + exit(1); + } + } + + /** + * Updates current version. + * + * @param Manager $manager + * @param string $version + * @param bool|null $allowMajor + * @param OutputInterface $output + * + * @return void + */ + private function updateCurrentVersion( + Manager $manager, + $version, + $allowMajor, + OutputInterface $output + ) + { + if ($manager->update($version, $allowMajor)) { + $output->writeln('Updated to latest version.'); + } else { + $output->writeln('Already up-to-date.'); + } + } +} \ No newline at end of file From 2f6a4428201fef4a92da2783c4719aed90ddce64 Mon Sep 17 00:00:00 2001 From: Tom Robertshaw Date: Mon, 14 Dec 2015 21:25:03 +0000 Subject: [PATCH 2/3] Typo in self-update command description. --- src/Meanbee/Magedbm/Command/SelfUpdateCommand.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Meanbee/Magedbm/Command/SelfUpdateCommand.php b/src/Meanbee/Magedbm/Command/SelfUpdateCommand.php index f6cead1..35807d6 100644 --- a/src/Meanbee/Magedbm/Command/SelfUpdateCommand.php +++ b/src/Meanbee/Magedbm/Command/SelfUpdateCommand.php @@ -30,7 +30,7 @@ protected function configure() 'Updates to version-number (i.e. 1.3.2). When omitted will update to the latest version' ) ->addOption('major', 'm', InputOption::VALUE_NONE, 'Lock to current major version') - ->setDescription('Update to the version of magedbm.'); + ->setDescription('Update the version of magedbm.'); } /** From 0f5e1b3f0f17be105a4c627092f5a56da2e46812 Mon Sep 17 00:00:00 2001 From: Tom Robertshaw Date: Fri, 18 Dec 2015 09:52:01 +0000 Subject: [PATCH 3/3] 14: Correct documentation for `major` optional flag on self update command. --- src/Meanbee/Magedbm/Command/SelfUpdateCommand.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Meanbee/Magedbm/Command/SelfUpdateCommand.php b/src/Meanbee/Magedbm/Command/SelfUpdateCommand.php index 35807d6..00260b3 100644 --- a/src/Meanbee/Magedbm/Command/SelfUpdateCommand.php +++ b/src/Meanbee/Magedbm/Command/SelfUpdateCommand.php @@ -29,7 +29,7 @@ protected function configure() InputArgument::OPTIONAL, 'Updates to version-number (i.e. 1.3.2). When omitted will update to the latest version' ) - ->addOption('major', 'm', InputOption::VALUE_NONE, 'Lock to current major version') + ->addOption('major', 'm', InputOption::VALUE_NONE, 'Allow major upgrade') ->setDescription('Update the version of magedbm.'); }