jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/351568 )
Change subject: Convert mwdoc-filter.php to Maintenance class so --wiki works
......................................................................
Convert mwdoc-filter.php to Maintenance class so --wiki works
Change-Id: Ie2fc4109bc2e7a23a6549d9705be44cf2eb858b9
---
M autoload.php
M maintenance/mwdoc-filter.php
2 files changed, 73 insertions(+), 55 deletions(-)
Approvals:
Krinkle: Looks good to me, approved
jenkins-bot: Verified
diff --git a/autoload.php b/autoload.php
index 1141c39..06e863f 100644
--- a/autoload.php
+++ b/autoload.php
@@ -786,6 +786,7 @@
'MWCryptRand' => __DIR__ . '/includes/utils/MWCryptRand.php',
'MWDebug' => __DIR__ . '/includes/debug/MWDebug.php',
'MWDocGen' => __DIR__ . '/maintenance/mwdocgen.php',
+ 'MWDocGenFilter' => __DIR__ . '/maintenance/mwdoc-filter.php',
'MWException' => __DIR__ . '/includes/exception/MWException.php',
'MWExceptionHandler' => __DIR__ .
'/includes/exception/MWExceptionHandler.php',
'MWExceptionRenderer' => __DIR__ .
'/includes/exception/MWExceptionRenderer.php',
diff --git a/maintenance/mwdoc-filter.php b/maintenance/mwdoc-filter.php
index 07aa282..46c5a00 100644
--- a/maintenance/mwdoc-filter.php
+++ b/maintenance/mwdoc-filter.php
@@ -38,63 +38,80 @@
* DEALINGS IN THE SOFTWARE.
*/
-if ( PHP_SAPI != 'cli' ) {
- die( "This filter can only be run from the command line.\n" );
-}
+require_once __DIR__ . '/Maintenance.php';
-$source = file_get_contents( $argv[1] );
-$tokens = token_get_all( $source );
+/**
+ * Maintenance script that builds doxygen documentation.
+ * @ingroup Maintenance
+ */
+class MWDocGenFilter extends Maintenance {
+ public function __construct() {
+ parent::__construct();
+ $this->addDescription( 'Doxygen filter to fix member variable
types in documentation. '
+ . 'Used by mwdocgen.php'
+ );
+ $this->addArg( 'filename', 'PHP file to filter', true );
+ }
-$buffer = $bufferType = null;
-foreach ( $tokens as $token ) {
- if ( is_string( $token ) ) {
- if ( $buffer !== null && $token === ';' ) {
- // If we still have a buffer and the statement has
ended,
- // flush it and move on.
- echo $buffer;
- $buffer = $bufferType = null;
+ public function execute() {
+ $source = file_get_contents( $this->getArg( 0 ) );
+ $tokens = token_get_all( $source );
+
+ $buffer = $bufferType = null;
+ foreach ( $tokens as $token ) {
+ if ( is_string( $token ) ) {
+ if ( $buffer !== null && $token === ';' ) {
+ // If we still have a buffer and the
statement has ended,
+ // flush it and move on.
+ echo $buffer;
+ $buffer = $bufferType = null;
+ }
+ echo $token;
+ continue;
+ }
+ list( $id, $content ) = $token;
+ switch ( $id ) {
+ case T_DOC_COMMENT:
+ // Escape slashes so that references to
namespaces are not
+ // wrongly interpreted as a Doxygen
"\command".
+ $content = addcslashes( $content, '\\'
);
+ // Look for instances of "@var Type"
not followed by $name.
+ if ( preg_match(
'#@var\s+([^\s]+)\s+([^\$]+)#s', $content ) ) {
+ $buffer = preg_replace_callback(
+ // Strip the "@var
Type" part and remember the type
+ '#(@var\s+)([^\s]+)#s',
+ function ( $matches )
use ( &$bufferType ) {
+ $bufferType =
$matches[2];
+ return '';
+ },
+ $content
+ );
+ } else {
+ echo $content;
+ }
+ break;
+
+ case T_VARIABLE:
+ if ( $buffer !== null ) {
+ echo $buffer;
+ echo "$bufferType $content";
+ $buffer = $bufferType = null;
+ } else {
+ echo $content;
+ }
+ break;
+
+ default:
+ if ( $buffer !== null ) {
+ $buffer .= $content;
+ } else {
+ echo $content;
+ }
+ break;
+ }
}
- echo $token;
- continue;
- }
- list( $id, $content ) = $token;
- switch ( $id ) {
- case T_DOC_COMMENT:
- // Escape slashes so that references to namespaces are
not
- // wrongly interpreted as a Doxygen "\command".
- $content = addcslashes( $content, '\\' );
- // Look for instances of "@var Type" not followed by
$name.
- if ( preg_match( '#@var\s+([^\s]+)\s+([^\$]+)#s',
$content ) ) {
- $buffer = preg_replace_callback(
- // Strip the "@var Type" part and
remember the type
- '#(@var\s+)([^\s]+)#s',
- function ( $matches ) use (
&$bufferType ) {
- $bufferType = $matches[2];
- return '';
- },
- $content
- );
- } else {
- echo $content;
- }
- break;
-
- case T_VARIABLE:
- if ( $buffer !== null ) {
- echo $buffer;
- echo "$bufferType $content";
- $buffer = $bufferType = null;
- } else {
- echo $content;
- }
- break;
-
- default:
- if ( $buffer !== null ) {
- $buffer .= $content;
- } else {
- echo $content;
- }
- break;
}
}
+
+$maintClass = 'MWDocGenFilter';
+require_once RUN_MAINTENANCE_IF_MAIN;
--
To view, visit https://gerrit.wikimedia.org/r/351568
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ie2fc4109bc2e7a23a6549d9705be44cf2eb858b9
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Mattflaschen <[email protected]>
Gerrit-Reviewer: BryanDavis <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: Hashar <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits