From 5633a68689a9653dc04a81bd06a37fa83e3a9c17 Mon Sep 17 00:00:00 2001 From: Kevin Boyd Date: Mon, 8 Apr 2019 22:44:08 -0700 Subject: [PATCH] Add a helper to disable process timeouts The helper can be included in custom script definitions by calling "Composer\\Config::disableProcessTimeout". Example: { "scripts": { "watch": [ "Composer\\Config::disableProcessTimeout", "vendor/bin/long-running-script --watch" ] } } --- src/Composer/Config.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/Composer/Config.php b/src/Composer/Config.php index 4d8199ccc..7abca7dfa 100644 --- a/src/Composer/Config.php +++ b/src/Composer/Config.php @@ -16,6 +16,7 @@ use Composer\Config\ConfigSourceInterface; use Composer\Downloader\TransportException; use Composer\IO\IOInterface; use Composer\Util\Platform; +use Composer\Util\ProcessExecutor; /** * @author Jordi Boggiano @@ -459,4 +460,20 @@ class Config } } } + + /** + * Used by long-running custom scripts in composer.json + * + * "scripts": { + * "watch": [ + * "Composer\\Config::disableProcessTimeout", + * "vendor/bin/long-running-script --watch" + * ] + * } + */ + public static function disableProcessTimeout() + { + // Override global timeout set earlier by environment or config + ProcessExecutor::setTimeout(0); + } }