/**
  * Execute the console command.
  *
  * @param ExtensionManager    $manager
  * @param ExtensionCollection $extensions
  */
 public function fire(ExtensionManager $manager, ExtensionCollection $extensions)
 {
     /* @var Extension $extension */
     $extension = $extensions->get($this->argument('extension'));
     $manager->uninstall($extension);
     $this->info(trans($extension->getName()) . ' uninstalled successfully!');
 }
 /**
  * Execute the console command.
  *
  * @param AddonCollection  $addons
  * @param ModuleManager    $modules
  * @param ExtensionManager $extensions
  */
 public function fire(AddonCollection $addons, ModuleManager $modules, ExtensionManager $extensions)
 {
     if (!($addon = $addons->get($this->argument('addon')))) {
         $this->error('The [' . $this->argument('addon') . '] could not be found.');
     }
     if ($addon instanceof Module) {
         $modules->uninstall($addon);
         $this->info('The [' . $this->argument('addon') . '] module was uninstalled.');
     }
     if ($addon instanceof Extension) {
         $extensions->uninstall($addon);
         $this->info('The [' . $this->argument('addon') . '] extension was uninstalled.');
     }
 }
 /**
  * Uninstall an addon.
  *
  * @param AddonCollection  $addons
  * @param ModuleManager    $modules
  * @param ExtensionManager $extensions
  * @param                  $addon
  * @return \Illuminate\Http\RedirectResponse
  */
 public function uninstall(AddonCollection $addons, ModuleManager $modules, ExtensionManager $extensions, $addon)
 {
     /* @var Addon|Module|Extension $addon */
     $addon = $addons->get($addon);
     if ($addon instanceof Module) {
         $modules->uninstall($addon);
     } elseif ($addon instanceof Extension) {
         $extensions->uninstall($addon);
     }
     $this->messages->success('module::message.uninstall_addon_success');
     return $this->redirect->back();
 }