/**
  * This method is the top logic of an application. when there is no
  * argument provided, we show help content by default.
  *
  * @return bool return true if success
  */
 public function execute()
 {
     $options = $this->getOptions();
     if ($options->version) {
         $this->logger->writeln($this->getName() . ' - ' . $this->getVersion());
         $this->logger->writeln("cliframework core: " . $this->getCoreVersion());
         return true;
     }
     $arguments = func_get_args();
     // show list and help by default
     $help = $this->getCommand('help');
     $help->setOptions($options);
     if ($help || $options->help) {
         $help->executeWrapper($arguments);
         return true;
     }
     throw new CommandNotFoundException($this, 'help');
 }