* @ingroup Maintenance
*/
class MWDocGen extends Maintenance {
+ /** @var string */
+ private $doxygen;
+ /** @var string */
+ private $mwVersion;
+ /** @var string */
+ private $output;
+ /** @var string */
+ private $input;
+ /** @var string */
+ private $inputFilter;
+ /** @var string */
+ private $template;
+ /** @var string[] */
+ private $excludes;
+ /** @var string[] */
+ private $excludePatterns;
+ /** @var bool */
+ private $doDot;
+ /** @var bool */
+ private $doMan;
/**
* Prepare Maintenance class
$this->addOption( 'output',
'Path to write doc to',
false, true );
- $this->addOption( 'no-extensions',
- 'Ignore extensions' );
+ $this->addOption( 'extensions',
+ 'Process the extensions/ directory as well (ignored if --file is used)' );
+ $this->addOption( 'skins',
+ 'Process the skins/ directory as well (ignored if --file is used)' );
}
public function getDbType() {
$this->template = $IP . '/maintenance/Doxyfile';
$this->excludes = [
- 'vendor',
- 'node_modules',
- 'resources/lib',
'images',
+ 'node_modules',
+ 'resources',
'static',
+ 'tests',
+ 'vendor',
];
$this->excludePatterns = [];
- if ( $this->hasOption( 'no-extensions' ) ) {
- $this->excludePatterns[] = 'extensions';
+ if ( $this->input === '' ) {
+ // If no explicit --file filter is set, we're indexing all of $IP,
+ // but any extension or skin submodules should be excluded by default.
+ if ( !$this->hasOption( 'extensions' ) ) {
+ $this->excludePatterns[] = 'extensions';
+ }
+ if ( !$this->hasOption( 'skins' ) ) {
+ $this->excludePatterns[] = 'skins';
+ }
}
$this->doDot = shell_exec( 'which dot' );