diff options
-rw-r--r-- | composer.json | 18 | ||||
-rw-r--r-- | composer.lock | 224 | ||||
-rw-r--r-- | core/Composer/ScriptHandler.php | 36 | ||||
-rwxr-xr-x | misc/composer/build-xhprof.sh | 53 | ||||
-rwxr-xr-x | misc/composer/clean-xhprof.sh | 12 |
5 files changed, 115 insertions, 228 deletions
diff --git a/composer.json b/composer.json index dbaca699cd..8236a9509f 100644 --- a/composer.json +++ b/composer.json @@ -59,10 +59,10 @@ "tecnickcom/tcpdf": "~6.0", "tedivm/jshrink": "~v1.4.0", "twig/twig": "^3.0", - "wikimedia/less.php": "^3.0" + "wikimedia/less.php": "^3.0", + "lox/xhprof": "dev-master" }, "require-dev": { - "lox/xhprof": "dev-master", "mayflower/mo4-coding-standard": "~6.0", "phpunit/phpunit": "~8.5", "squizlabs/php_codesniffer": "^3.5", @@ -77,20 +77,6 @@ "symfony/polyfill-php71": "*", "symfony/polyfill-php72": "*" }, - "scripts": { - "pre-update-cmd": [ - "Piwik\\Composer\\ScriptHandler::cleanXhprof" - ], - "pre-install-cmd": [ - "Piwik\\Composer\\ScriptHandler::cleanXhprof" - ], - "post-update-cmd": [ - "Piwik\\Composer\\ScriptHandler::buildXhprof" - ], - "post-install-cmd": [ - "Piwik\\Composer\\ScriptHandler::buildXhprof" - ] - }, "autoload": { "psr-4": { "Piwik\\Plugins\\": "plugins/", diff --git a/composer.lock b/composer.lock index 8cd7b810d7..39f2c580b9 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "5313998e7809828a4ceef367c37294ba", + "content-hash": "62e96a498f1bf639fc5a15e57cb1f1eb", "packages": [ { "name": "composer/ca-bundle", @@ -269,6 +269,49 @@ "time": "2020-10-01T18:48:34+00:00" }, { + "name": "lox/xhprof", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/lox/xhprof.git", + "reference": "c64571f892bda1298bad9c5e94ede0bc3f0e4627" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lox/xhprof/zipball/c64571f892bda1298bad9c5e94ede0bc3f0e4627", + "reference": "c64571f892bda1298bad9c5e94ede0bc3f0e4627", + "shasum": "" + }, + "require": { + "php": ">=5.2.0" + }, + "default-branch": true, + "bin": [ + "bin/xhprofile" + ], + "type": "library", + "autoload": { + "files": [ + "xhprof_lib/utils/xhprof_lib.php", + "xhprof_lib/utils/xhprof_runs.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "XHProf: A Hierarchical Profiler for PHP", + "homepage": "http://pecl.php.net/package/xhprof", + "keywords": [ + "performance", + "profiling" + ], + "support": { + "source": "https://github.com/lox/xhprof/tree/master" + }, + "time": "2015-08-31T22:07:48+00:00" + }, + { "name": "matomo/cache", "version": "2.0.5", "source": { @@ -717,16 +760,16 @@ }, { "name": "maxmind-db/reader", - "version": "v1.10.1", + "version": "v1.11.0", "source": { "type": "git", "url": "https://github.com/maxmind/MaxMind-DB-Reader-php.git", - "reference": "569bd44d97d30a4ec12c7793a33004a76d4caf18" + "reference": "b1f3c0699525336d09cc5161a2861268d9f2ae5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maxmind/MaxMind-DB-Reader-php/zipball/569bd44d97d30a4ec12c7793a33004a76d4caf18", - "reference": "569bd44d97d30a4ec12c7793a33004a76d4caf18", + "url": "https://api.github.com/repos/maxmind/MaxMind-DB-Reader-php/zipball/b1f3c0699525336d09cc5161a2861268d9f2ae5b", + "reference": "b1f3c0699525336d09cc5161a2861268d9f2ae5b", "shasum": "" }, "require": { @@ -736,7 +779,7 @@ "ext-maxminddb": "<1.10.1,>=2.0.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "*", + "friendsofphp/php-cs-fixer": "3.*", "php-coveralls/php-coveralls": "^2.1", "phpstan/phpstan": "*", "phpunit/phpcov": ">=6.0.0", @@ -776,9 +819,9 @@ ], "support": { "issues": "https://github.com/maxmind/MaxMind-DB-Reader-php/issues", - "source": "https://github.com/maxmind/MaxMind-DB-Reader-php/tree/v1.10.1" + "source": "https://github.com/maxmind/MaxMind-DB-Reader-php/tree/v1.11.0" }, - "time": "2021-04-14T17:49:35+00:00" + "time": "2021-10-18T15:23:10+00:00" }, { "name": "maxmind/web-service-common", @@ -1164,16 +1207,16 @@ }, { "name": "pear/pear-core-minimal", - "version": "v1.10.10", + "version": "v1.10.11", "source": { "type": "git", "url": "https://github.com/pear/pear-core-minimal.git", - "reference": "625a3c429d9b2c1546438679074cac1b089116a7" + "reference": "68d0d32ada737153b7e93b8d3c710ebe70ac867d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/625a3c429d9b2c1546438679074cac1b089116a7", - "reference": "625a3c429d9b2c1546438679074cac1b089116a7", + "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/68d0d32ada737153b7e93b8d3c710ebe70ac867d", + "reference": "68d0d32ada737153b7e93b8d3c710ebe70ac867d", "shasum": "" }, "require": { @@ -1208,7 +1251,7 @@ "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=PEAR", "source": "https://github.com/pear/pear-core-minimal" }, - "time": "2019-11-19T19:00:24+00:00" + "time": "2021-08-10T22:31:03+00:00" }, { "name": "pear/pear_exception", @@ -1318,16 +1361,16 @@ }, { "name": "php-di/php-di", - "version": "6.3.4", + "version": "6.3.5", "source": { "type": "git", "url": "https://github.com/PHP-DI/PHP-DI.git", - "reference": "f53bcba06ab31b18e911b77c039377f4ccd1f7a5" + "reference": "b8126d066ce144765300ee0ab040c1ed6c9ef588" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/f53bcba06ab31b18e911b77c039377f4ccd1f7a5", - "reference": "f53bcba06ab31b18e911b77c039377f4ccd1f7a5", + "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/b8126d066ce144765300ee0ab040c1ed6c9ef588", + "reference": "b8126d066ce144765300ee0ab040c1ed6c9ef588", "shasum": "" }, "require": { @@ -1378,7 +1421,7 @@ ], "support": { "issues": "https://github.com/PHP-DI/PHP-DI/issues", - "source": "https://github.com/PHP-DI/PHP-DI/tree/6.3.4" + "source": "https://github.com/PHP-DI/PHP-DI/tree/6.3.5" }, "funding": [ { @@ -1390,7 +1433,7 @@ "type": "tidelift" } ], - "time": "2021-06-10T08:04:48+00:00" + "time": "2021-09-02T09:49:58+00:00" }, { "name": "php-di/phpdoc-reader", @@ -1956,16 +1999,16 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.23.0", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1" + "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2df51500adbaebdc4c38dea4c89a2e131c45c8a1", - "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6", + "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6", "shasum": "" }, "require": { @@ -2016,7 +2059,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1" }, "funding": [ { @@ -2032,7 +2075,7 @@ "type": "tidelift" } ], - "time": "2021-05-27T09:27:20+00:00" + "time": "2021-05-27T12:26:48+00:00" }, { "name": "szymach/c-pchart", @@ -2232,16 +2275,16 @@ }, { "name": "twig/twig", - "version": "v3.3.2", + "version": "v3.3.3", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "21578f00e83d4a82ecfa3d50752b609f13de6790" + "reference": "a27fa056df8a6384316288ca8b0fa3a35fdeb569" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/21578f00e83d4a82ecfa3d50752b609f13de6790", - "reference": "21578f00e83d4a82ecfa3d50752b609f13de6790", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/a27fa056df8a6384316288ca8b0fa3a35fdeb569", + "reference": "a27fa056df8a6384316288ca8b0fa3a35fdeb569", "shasum": "" }, "require": { @@ -2251,7 +2294,7 @@ }, "require-dev": { "psr/container": "^1.0", - "symfony/phpunit-bridge": "^4.4.9|^5.0.9" + "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" }, "type": "library", "extra": { @@ -2292,7 +2335,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.3.2" + "source": "https://github.com/twigphp/Twig/tree/v3.3.3" }, "funding": [ { @@ -2304,7 +2347,7 @@ "type": "tidelift" } ], - "time": "2021-05-16T12:14:13+00:00" + "time": "2021-09-17T08:44:23+00:00" }, { "name": "wikimedia/less.php", @@ -2574,49 +2617,6 @@ "time": "2021-01-18T12:40:14+00:00" }, { - "name": "lox/xhprof", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/lox/xhprof.git", - "reference": "c64571f892bda1298bad9c5e94ede0bc3f0e4627" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/lox/xhprof/zipball/c64571f892bda1298bad9c5e94ede0bc3f0e4627", - "reference": "c64571f892bda1298bad9c5e94ede0bc3f0e4627", - "shasum": "" - }, - "require": { - "php": ">=5.2.0" - }, - "default-branch": true, - "bin": [ - "bin/xhprofile" - ], - "type": "library", - "autoload": { - "files": [ - "xhprof_lib/utils/xhprof_lib.php", - "xhprof_lib/utils/xhprof_runs.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "description": "XHProf: A Hierarchical Profiler for PHP", - "homepage": "http://pecl.php.net/package/xhprof", - "keywords": [ - "performance", - "profiling" - ], - "support": { - "source": "https://github.com/lox/xhprof/tree/master" - }, - "time": "2015-08-31T22:07:48+00:00" - }, - { "name": "mayflower/mo4-coding-standard", "version": "v6.0.0", "source": { @@ -2894,16 +2894,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.2.2", + "version": "5.3.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", "shasum": "" }, "require": { @@ -2914,7 +2914,8 @@ "webmozart/assert": "^1.9.1" }, "require-dev": { - "mockery/mockery": "~1.3.2" + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" }, "type": "library", "extra": { @@ -2944,22 +2945,22 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" }, - "time": "2020-09-03T19:13:55+00:00" + "time": "2021-10-19T17:43:47+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.4.0", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" + "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/a12f7e301eb7258bb68acd89d4aefa05c2906cae", + "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae", "shasum": "" }, "require": { @@ -2967,7 +2968,8 @@ "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "ext-tokenizer": "*" + "ext-tokenizer": "*", + "psalm/phar": "^4.8" }, "type": "library", "extra": { @@ -2993,39 +2995,39 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.5.1" }, - "time": "2020-09-17T18:55:26+00:00" + "time": "2021-10-02T14:08:47+00:00" }, { "name": "phpspec/prophecy", - "version": "1.13.0", + "version": "1.14.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea" + "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea", - "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", + "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", "shasum": "" }, "require": { "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.1", + "php": "^7.2 || ~8.0, <8.2", "phpdocumentor/reflection-docblock": "^5.2", "sebastian/comparator": "^3.0 || ^4.0", "sebastian/recursion-context": "^3.0 || ^4.0" }, "require-dev": { - "phpspec/phpspec": "^6.0", + "phpspec/phpspec": "^6.0 || ^7.0", "phpunit/phpunit": "^8.0 || ^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -3060,9 +3062,9 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/1.13.0" + "source": "https://github.com/phpspec/prophecy/tree/1.14.0" }, - "time": "2021-03-17T13:42:18+00:00" + "time": "2021-09-10T09:02:12+00:00" }, { "name": "phpstan/phpdoc-parser", @@ -3416,16 +3418,16 @@ }, { "name": "phpunit/phpunit", - "version": "8.5.18", + "version": "8.5.21", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "bd5fc77c869e8dd65040dacbad170f074c13796c" + "reference": "50a58a60b85947b0bee4c8ecfe0f4bbdcf20e984" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bd5fc77c869e8dd65040dacbad170f074c13796c", - "reference": "bd5fc77c869e8dd65040dacbad170f074c13796c", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/50a58a60b85947b0bee4c8ecfe0f4bbdcf20e984", + "reference": "50a58a60b85947b0bee4c8ecfe0f4bbdcf20e984", "shasum": "" }, "require": { @@ -3437,12 +3439,12 @@ "ext-xml": "*", "ext-xmlwriter": "*", "myclabs/deep-copy": "^1.10.0", - "phar-io/manifest": "^2.0.1", + "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.2", "phpspec/prophecy": "^1.10.3", "phpunit/php-code-coverage": "^7.0.12", - "phpunit/php-file-iterator": "^2.0.2", + "phpunit/php-file-iterator": "^2.0.4", "phpunit/php-text-template": "^1.2.1", "phpunit/php-timer": "^2.1.2", "sebastian/comparator": "^3.0.2", @@ -3497,7 +3499,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.18" + "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.21" }, "funding": [ { @@ -3509,7 +3511,7 @@ "type": "github" } ], - "time": "2021-07-19T06:13:17+00:00" + "time": "2021-09-25T07:37:20+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -4304,16 +4306,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.6.0", + "version": "3.6.1", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625" + "reference": "f268ca40d54617c6e06757f83f699775c9b3ff2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ffced0d2c8fa8e6cdc4d695a743271fab6c38625", - "reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/f268ca40d54617c6e06757f83f699775c9b3ff2e", + "reference": "f268ca40d54617c6e06757f83f699775c9b3ff2e", "shasum": "" }, "require": { @@ -4356,7 +4358,7 @@ "source": "https://github.com/squizlabs/PHP_CodeSniffer", "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" }, - "time": "2021-04-09T00:54:41+00:00" + "time": "2021-10-11T04:00:11+00:00" }, { "name": "symfony/var-dumper", diff --git a/core/Composer/ScriptHandler.php b/core/Composer/ScriptHandler.php deleted file mode 100644 index 1cd52ca031..0000000000 --- a/core/Composer/ScriptHandler.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php -/** - * Matomo - free/libre analytics platform - * - * @link https://matomo.org - * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */ - -namespace Piwik\Composer; - -/** - * Scripts executed before/after Composer install and update. - * - * We use this PHP class because setting the bash scripts directly in composer.json breaks - * Composer on Windows systems. - */ -class ScriptHandler -{ - public static function cleanXhprof() - { - if (! is_dir('vendor/facebook/xhprof/extension')) { - return; - } - - passthru('misc/composer/clean-xhprof.sh'); - } - - public static function buildXhprof() - { - if (! is_dir('vendor/facebook/xhprof/extension')) { - return; - } - - passthru('misc/composer/clean-xhprof.sh'); - } -} diff --git a/misc/composer/build-xhprof.sh b/misc/composer/build-xhprof.sh deleted file mode 100755 index 88864db8eb..0000000000 --- a/misc/composer/build-xhprof.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash - -if ! type phpize &> /dev/null; then - echo "phpize missing, skipping build" - echo "If you installed PHP via Aptitude, you can install phpize w/ 'sudo apt-get install php7-dev'" - exit -fi - -if ! type make &> /dev/null; then - echo "make missing, skipping build" - exit -fi - -if ! [ -d "vendor/facebook/xhprof/extension" ]; then - echo "xhprof missing, skipping build" - exit -fi - -mkdir -p tmp/xhprof-logs - -cd vendor/facebook/xhprof/extension - -echo "Building xhprof..." - -if ! phpize &> ../../../../tmp/xhprof-logs/phpize.log; then - echo "Fatal error: phpize failed! View tmp/xhprof-logs/phpize.log for more info." - exit 1 -fi - -# Execute aclocal and autoconf only if Gentoo is used. -if [[ -x /usr/bin/emerge ]]; then - if ! aclocal &> ../../../../tmp/xhprof-logs/aclocal.log; then - echo "Fatal error: aclocal failed! View tmp/xhprof-logs/aclocal.log for more info." - exit 1 - fi - - if ! autoconf &> ../../../../tmp/xhprof-logs/autoconf.log; then - echo "Fatal error: autoconf failed! View tmp/xhprof-logs/autoconf.log for more info." - exit 1 - fi -fi - -if ! ./configure &> ../../../../tmp/xhprof-logs/configure.log; then - echo "Fatal error: configure script failed! View tmp/xhprof-logs/configure.log for more info." - exit 2 -fi - -if ! make &> ../../../../tmp/xhprof-logs/make.log; then - echo "Fatal error: could not build extension (make failed)! View tmp/xhprof-logs/make.log for more info." - exit 3 -fi - -echo "Done."
\ No newline at end of file diff --git a/misc/composer/clean-xhprof.sh b/misc/composer/clean-xhprof.sh deleted file mode 100755 index d20c17dd48..0000000000 --- a/misc/composer/clean-xhprof.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -# if xhprof exists but points to a non-master branch, checkout master so composer won't fail - -if [ -d "vendor/facebook/xhprof/extension" ]; then - cd vendor/facebook/xhprof/extension - - GIT_BRANCH=$(git symbolic-ref HEAD 2>/dev/null) - - git reset --hard &> /dev/null - git checkout master &> /dev/null -fi
\ No newline at end of file |