From 26b3a1711f37d23764f76cd0b741d3876928445b Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Sun, 1 Apr 2012 20:59:50 +0200 Subject: [PATCH] Add handling for phar --- src/Composer/Compiler.php | 1 + src/Composer/IO/ConsoleIO.php | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Composer/Compiler.php b/src/Composer/Compiler.php index e6af59826..0d6d5937b 100644 --- a/src/Composer/Compiler.php +++ b/src/Composer/Compiler.php @@ -65,6 +65,7 @@ class Compiler } $this->addFile($phar, new \SplFileInfo(__DIR__.'/Autoload/ClassLoader.php'), false); $this->addFile($phar, new \SplFileInfo(__DIR__.'/../../res/composer-schema.json'), false); + $this->addFile($phar, new \SplFileInfo(__DIR__.'/../../src/Composer/IO/hiddeninput.exe'), false); $finder = new Finder(); $finder->files() diff --git a/src/Composer/IO/ConsoleIO.php b/src/Composer/IO/ConsoleIO.php index 119c23654..6a7d7bc21 100644 --- a/src/Composer/IO/ConsoleIO.php +++ b/src/Composer/IO/ConsoleIO.php @@ -128,8 +128,17 @@ class ConsoleIO implements IOInterface { // handle windows if (defined('PHP_WINDOWS_VERSION_BUILD')) { + $exe = __DIR__.'\\hiddeninput.exe'; + + // handle code running from a phar + if ('phar:' === substr(__FILE__, 0, 5)) { + $tmpExe = sys_get_temp_dir().'/hiddeninput.exe'; + copy($exe, $tmpExe); + $exe = $tmpExe; + } + $this->write($question, false); - $value = rtrim(shell_exec(__DIR__.'\\hiddeninput.exe')); + $value = rtrim(shell_exec($exe)); $this->write(''); return $value;