You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

48 lines
2.3 KiB

<?php
/*
* Commande d'exécution depuis une source svn de la Zone de SPIP…
*/
namespace autodoc\Helpers\Command;
use Cilex\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use autodoc\Helpers\Generator;
/**
* Déclaration et exécution de l'application depuis le Git de la zone de SPIP
*/
class FromZone extends Command
{
protected function configure()
{
$this
->setName('from:zone')
->setDescription("Exécuter l'autodoc sur un répertoire de la Zone")
->setHelp("Si le répertoire cible est un plugin SPIP, certaines informations seront extraites du paquet.xml et du fichier de langue.")
->addArgument('chemin', InputArgument::REQUIRED, "Chemin dans l'arborescence du git de la zone. <comment>Exemple : 'spip-contrib-extensions/fabrique'</comment>")
->addOption('branche', 'b', InputOption::VALUE_OPTIONAL, 'Branche ou tag à utiliser', 'master')
->addOption('prefixe', 'p', InputOption::VALUE_OPTIONAL, 'Préfixe servant au stockage des données', 'plugin')
->addOption('sortie', 's', InputOption::VALUE_OPTIONAL, "Répertoire recevant le HTML généré. Chemin absolu ou relatif au répertoire 'work'. <comment>Défaut : 'output/{prefixe}'</comment>")
->addOption('topnav', null, InputOption::VALUE_OPTIONAL, "URL d'un fichier JS à charger dans le head html. <comment>Exemple : '//boussole.spip.net/?page=spipnav.js&lang=fr'</comment>")
->addOption('avec_boussole_spip', null, InputOption::VALUE_NONE, "Intègre le JS de la boussole SPIP en entête topnav.")
->addOption('force', '', InputOption::VALUE_NONE, "Force l'analyse de tous les fichiers, même s'ils n'ont pas été modifiés.")
;
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$chemin = $input->getArgument('chemin');
$branche = $input->getOption('branche');
$output->writeln("\nExécuter autodoc sur la Zone depuis : <info>$chemin</info>.");
$generator = new Generator($input, $output, $this->getApplication()->getService('autoloader'));
$generator->generateFromZone($chemin, $branche);
}
}