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.
 
 
 

52 lines
2.2 KiB

<?php
/*
* Commande d'exécution depuis un fichier autodoc.txt (de la Zone de SPIP par défaut)…
*/
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 svn d'un plugin de la zone de SPIP
*/
class FromFile extends Command
{
protected function configure()
{
$this
->setName('from:file')
->setDescription("Exécuter l'autodoc sur un fichier de type autodoc.txt.")
->setHelp("Le fichier source des données doit indiquer une liste de sources SVN et leur préfixes de stockage.
Pour chaque ligne, une documentation sera générée. Lorsque le contenu est un plugin de SPIP, certaines informations seront extraites du paquet.xml et du fichier de langue.
Exemple de fichier :
svn://zone.spip.org/spip-zone/_plugins_/a2a/trunk;a2a
svn://zone.spip.org/spip-zone/_plugins_/champs_extras/core/trunk;cextras
")
->addArgument('file', InputArgument::OPTIONAL, "Chemin du fichier. Peut être une adresse SVN.", 'svn://zone.spip.org/spip-zone/autodoc.txt')
->addOption('sorties', 's', InputOption::VALUE_OPTIONAL, "Répertoire stockant toutes les documentations générées. Chemin absolu ou relatif au répertoire 'work'. <comment>Défaut : 'output'</comment>")
->addOption('topnav', null, InputOption::VALUE_OPTIONAL, "URL d'un fichier JS dont le contenu est inséré dans le head html. <comment>Exemple : 'http://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.")
;
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$file = $input->getArgument('file');
$output->writeln("\nExécuter autodoc sur un fichier : <info>$file</info>.\n");
$generator = new Generator($input, $output, $this->getApplication()->getService('autoloader'));
$generator->generateFromFile($file);
}
}