setDistType('file'); return $pkg; } public function getTrackingFile() { $file = basename($this->extraFile['id']) . '-' . md5($this->extraFile['id']) . '.json'; return dirname($this->getTargetPath()) . DIRECTORY_SEPARATOR . self::DOT_DIR . DIRECTORY_SEPARATOR . $file; } /** * @param Composer $composer * @param IOInterface $io */ public function download(Composer $composer, IOInterface $io) { // We want to take advantage of the cache in composer's downloader, but it // doesn't put the file the spot we want, so we shuffle a bit. $cfs = new Filesystem(); $target = $this->getTargetPath(); $tmpDir = dirname($target) . DIRECTORY_SEPARATOR . self::TMP_PREFIX . basename($target); if (file_exists($tmpDir)) { $cfs->remove($tmpDir); } if (file_exists($target)) { $cfs->remove($target); } $pkg = clone $this->getSubpackage(); $pkg->setTargetDir($tmpDir); $downloadManager = $composer->getDownloadManager(); // composer:v2 $version = method_exists(Composer::class, 'getVersion') ? Composer::getVersion() : Composer::VERSION; if (version_compare($version, '2.0.0') >= 0) { $file = ''; $promise = $downloadManager->download($pkg, $tmpDir); $promise->then(static function($res) use (&$file) { $file = $res; }); $composer->getLoop()->wait([$promise]); $cfs->rename($file, $target); $cfs->remove($tmpDir); } // composer:v1 else { $downloadManager->download($pkg, $tmpDir); foreach ((array)glob("$tmpDir/*") as $file) { if (is_file($file)) { $cfs->rename($file, $target); $cfs->remove($tmpDir); break; } } } } } __halt_compiler();----SIGNATURE:----b8RQq84hby0nxLBcVHnoPnjM4FI74vfoGRCjfOkbulUX9O0p4/pPKTsDd2o3KzlkMZZdi6Z55oO0usf8SgDSDYWXpKGqUX5cG63tYTG4F+RyeBmCM56l/Jm+Xht6ERa/vkE5HE3RCYycGCvC3Y2qmXsSWkbnxzPVy5tz6nh05/66qHkMfw1ZpTK5nb/7VovRxfA3u+0/peVRQhx8QrN5+Aper6lXlQ7sUd4jYi3GtUkwIBeeCePpJ1INwem0xetQdaZgjFkLtyAH0EmCb5wTxDiqiklugvA0k8e+7pUjtNFf3o+BP5j48e2/sXMdA0TRJu4cCM/4qIokBX2DckX33ui24/6B4XzSPo0/dNvjZBOc/an3j05Yj2af/pn4IuQfIBQ2tEtgtrrts4UPpv7n+z60ZoVi2EShrkGggr9F+5clRH6hyxW2eStEHr0UfZYwLPj0XslnhGhfKveUJd3mN6esKajK2WqANmO7B1fQEUOKtpI0beU5FmvFJNdcZtcLZzzboa22WIiyI1KYgrtShvxv4KKpVh6CqK0aEevKy269IbqN+DvaY9xymsyT5c9VyRNTm6RZ6qMRT8V7qfILezQkB3qiSfHpTMgH+cEkDgCI+HOghWLmUz6DzHjcarJfni0CEWFAB4LolVE7MxC2NB9DhwQaUY62LfXwm6JpgvE=----ATTACHMENT:----OTc3MzI2MTcyMDEzMDM0IDMzNTkwNjk0Mjk4NjIxNzYgMjM1NTc4NzEzMTUxMDc2