|
@@ -319,13 +319,16 @@ EOT
|
|
|
}
|
|
|
|
|
|
// handler Ctrl+C for unix-like systems
|
|
|
- if (function_exists('pcntl_signal')) {
|
|
|
- declare(ticks=100);
|
|
|
- pcntl_signal(SIGINT, function () use ($directory) {
|
|
|
- $fs = new Filesystem();
|
|
|
- $fs->removeDirectory($directory);
|
|
|
- exit(130);
|
|
|
- });
|
|
|
+ if (function_exists('pcntl_async_signals')) {
|
|
|
+ @mkdir($directory, 0777, true);
|
|
|
+ if ($realDir = realpath($directory)) {
|
|
|
+ pcntl_async_signals(true);
|
|
|
+ pcntl_signal(SIGINT, function () use ($realDir) {
|
|
|
+ $fs = new Filesystem();
|
|
|
+ $fs->removeDirectory($realDir);
|
|
|
+ exit(130);
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
$io->writeError('<info>Installing ' . $package->getName() . ' (' . $package->getFullPrettyVersion(false) . ')</info>');
|