diff --git a/ahoy.yml b/ahoy.yml new file mode 100644 index 0000000000000000000000000000000000000000..13a258ab2cf30a6be4c67ecc7954e804ed9bdbc3 --- /dev/null +++ b/ahoy.yml @@ -0,0 +1,5 @@ +ahoyapi: v2 +commands: + update: + cmd: composer dorgflow "$@" + usage: Update DorgFlow setup in project diff --git a/composer.json b/composer.json index d6d897705383d63a40f43b867238ac623453fbf1..cf50bfe2b58b2abc4caac32aa4f73b47d19ec3ce 100644 --- a/composer.json +++ b/composer.json @@ -26,6 +26,7 @@ "require": { "composer-plugin-api": "^1.0.0", "cypresslab/gitelephant": "~1.0", + "lakedrops/composer-json-utils": "^1.1.0", "php": ">=5.6" }, "require-dev": { diff --git a/src/Handler.php b/src/Handler.php index 5e365ff9acf69e1b2bfd72bd2c6adb4491bb327a..0df234091a57d12ba333712554f13243fad67ea7 100644 --- a/src/Handler.php +++ b/src/Handler.php @@ -2,10 +2,9 @@ namespace LakeDrops\DorgFlow; -use Composer\Composer; -use Composer\IO\IOInterface; use Composer\Script\Event; use GitElephant\Repository; +use LakeDrops\Component\Composer\BaseHandler; use Symfony\Component\Filesystem\Filesystem; /** @@ -13,47 +12,7 @@ use Symfony\Component\Filesystem\Filesystem; * * @package LakeDrops\DorgFlow */ -class Handler { - - /** - * The composer object of this session. - * - * @var \Composer\Composer - */ - protected $composer; - - /** - * The input-output object of the composer session. - * - * @var \Composer\IO\IOInterface - */ - protected $io; - - /** - * Handler constructor. - * - * @param \Composer\Composer $composer - * The composer object of this session. - * @param \Composer\IO\IOInterface $io - * The input-output object of the composer session. - */ - public function __construct(Composer $composer, IOInterface $io) { - $this->composer = $composer; - $this->io = $io; - } - - /** - * Retrieve a package from the current composer process. - * - * @param string $name - * Name of the package to get from the current composer installation. - * - * @return \Composer\Package\PackageInterface - * The package. - */ - protected function getPackage($name) { - return $this->composer->getRepositoryManager()->getLocalRepository()->findPackage($name, '*'); - } +class Handler extends BaseHandler { /** * Post install/update event to prepare projects for development. diff --git a/src/Plugin.php b/src/Plugin.php index 56be7482564064ca43150374d354b0bbadf1fd02..b99f1261790cde9a8f1ff5b35b742a0f166f9c03 100644 --- a/src/Plugin.php +++ b/src/Plugin.php @@ -2,30 +2,20 @@ namespace LakeDrops\DorgFlow; -use Composer\Composer; -use Composer\EventDispatcher\EventSubscriberInterface; -use Composer\IO\IOInterface; -use Composer\Plugin\PluginInterface; use Composer\Script\Event; use Composer\Script\ScriptEvents; +use LakeDrops\Component\Composer\BasePlugin; /** * Composer plugin for preparing Drupal project for development with dorgflow. */ -class Plugin implements PluginInterface, EventSubscriberInterface { - - /** - * The handler object to configure the project for dorgflow. - * - * @var \LakeDrops\DorgFlow\Handler - */ - protected $handler; +class Plugin extends BasePlugin { /** * {@inheritdoc} */ - public function activate(Composer $composer, IOInterface $io) { - $this->handler = new Handler($composer, $io); + public function getHandlerClass() { + return Handler::class; } /**