/**
  * Handle the command.
  *
  * @param Kernel                       $console
  * @param Dispatcher                   $events
  * @param ExtensionRepositoryInterface $extensions
  * @return bool
  */
 public function handle(Kernel $console, Dispatcher $events, ExtensionRepositoryInterface $extensions)
 {
     $this->extension->fire('uninstalling');
     $options = ['--addon' => $this->extension->getNamespace()];
     $console->call('migrate:reset', $options);
     $console->call('streams:destroy', ['namespace' => $this->extension->getSlug()]);
     $console->call('streams:cleanup');
     $extensions->uninstall($this->extension);
     $this->extension->fire('uninstalled');
     $events->fire(new ExtensionWasUninstalled($this->extension));
     return true;
 }
 /**
  * Handle the command.
  *
  * @param  InstallExtension|Kernel      $console
  * @param  AddonManager                 $manager
  * @param  Dispatcher                   $dispatcher
  * @param  ExtensionRepositoryInterface $extensions
  * @return bool
  */
 public function handle(Kernel $console, AddonManager $manager, Dispatcher $dispatcher, ExtensionRepositoryInterface $extensions)
 {
     $this->extension->fire('installing');
     $options = ['--addon' => $this->extension->getNamespace(), '--force' => true];
     $console->call('migrate:refresh', $options);
     $extensions->install($this->extension);
     $manager->register();
     if ($this->seed) {
         $console->call('db:seed', $options);
     }
     $this->extension->fire('installed');
     $dispatcher->fire(new ExtensionWasInstalled($this->extension));
     return true;
 }
 /**
  * Handle the command.
  *
  * @param ExtensionRepositoryInterface $extensions
  * @param Dispatcher                   $events
  * @return bool
  */
 public function handle(ExtensionRepositoryInterface $extensions, Dispatcher $events)
 {
     $extensions->disable($this->extension);
     $events->fire(new ExtensionWasDisabled($this->extension));
     return true;
 }