Exemplo n.º 1
0
 /**
  * Event handler for composer package events
  *
  * @param \Composer\EventDispatcher\Event $event
  */
 public static function handle($event)
 {
     try {
         $operation = $event->getOperation();
         if (method_exists($operation, 'getPackage')) {
             $installedPackage = $operation->getPackage();
         } elseif (method_exists($operation, 'getTargetPackage')) {
             $installedPackage = $operation->getTargetPackage();
         } else {
             return;
         }
     } catch (\Exception $e) {
         return;
     }
     $rootExtra = $event->getComposer()->getPackage()->getExtra();
     $extra = $installedPackage->getExtra();
     if (isset($extra['bolt-assets'])) {
         $type = $installedPackage->getType();
         $pathToPublic = $rootExtra['bolt-web-path'];
         // Get the path from extensions base through to public
         $destParts = [getcwd(), $pathToPublic, 'extensions', 'vendor', $installedPackage->getName(), $extra['bolt-assets']];
         $dest = realpath(join(DIRECTORY_SEPARATOR, $destParts));
         if ($type === 'bolt-extension' && isset($extra['bolt-assets'])) {
             $sourceParts = [getcwd(), 'vendor', $installedPackage->getName(), $extra['bolt-assets']];
             $source = join(DIRECTORY_SEPARATOR, $sourceParts);
             self::mirror($source, $dest);
         }
     }
 }
 /**
  * getPluginComposerData
  *
  * @param Event $event
  *
  * @return mixed
  * @throws \Exception
  */
 protected function getPluginComposerData(Event $event)
 {
     $extra = $event->getComposer()->getPackage()->getExtra();
     if (!isset($extra['xpressengine-plugin']['path'])) {
         throw new \Exception('xpressengine-installer: extra > xpressengine-plugin > path is needed.');
     }
     $path = $extra['xpressengine-plugin']['path'];
     $this->path = $path;
     if (!file_exists($path)) {
         throw new \Exception("file [{$path}] not exists.");
     }
     return json_decode(file_get_contents($path), true);
 }