/**
  * Execute the console command.
  *
  * @return void
  */
 public function fire()
 {
     // Reset a specific addon(s).
     if ($addon = $this->input->getOption('addon')) {
         $pretend = $this->input->getOption('pretend');
         $namespaces = explode(',', $addon);
         foreach ($namespaces as $namespace) {
             while (true) {
                 $count = $this->migrator->rollbackNamespace($namespace, $pretend);
                 // Once the migrator has run we will grab the note output and send it out to
                 // the console screen, since the migrator itself functions without having
                 // any instances of the OutputInterface contract passed into the class.
                 foreach ($this->migrator->getNotes() as $note) {
                     $this->output->writeln($note);
                 }
                 if ($count == 0) {
                     break;
                 }
             }
         }
     } else {
         // Reset everything.
         parent::fire();
     }
     $this->dispatch(new CleanupStreams());
 }