X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2Fmcc.php;h=784ba0ea357496bee9c3d0118a0331561587e40a;hb=899f475d0dad8ea0a24f706fc8ac07e3097d6191;hp=6090a934b8888a36e12a3a59dcc352aab85885fd;hpb=5db75ef6a4fedb5baeb1acec059966b5652209d6;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/mcc.php b/maintenance/mcc.php index 6090a934b8..784ba0ea35 100644 --- a/maintenance/mcc.php +++ b/maintenance/mcc.php @@ -22,22 +22,67 @@ * @ingroup Maintenance */ -/** */ -require_once( __DIR__ . '/commandLine.inc' ); - -$mcc = new MWMemcached( array( 'persistent' => true ) ); - -if ( $wgMainCacheType === CACHE_MEMCACHED ) { +$optionsWithArgs = [ 'cache' ]; +$optionsWithoutArgs = [ + 'debug', 'help' +]; +require_once __DIR__ . '/commandLine.inc'; + +$debug = isset( $options['debug'] ); +$help = isset( $options['help'] ); +$cache = isset( $options['cache'] ) ? $options['cache'] : null; + +if ( $help ) { + mccShowUsage(); + exit( 0 ); +} +$mcc = new MemcachedClient( [ + 'persistent' => true, + 'debug' => $debug, +] ); + +if ( $cache ) { + if ( !isset( $wgObjectCaches[$cache] ) ) { + print "MediaWiki isn't configured with a cache named '$cache'"; + exit( 1 ); + } + $servers = $wgObjectCaches[$cache]['servers']; +} elseif ( $wgMainCacheType === CACHE_MEMCACHED ) { $mcc->set_servers( $wgMemCachedServers ); -} elseif( isset( $wgObjectCaches[$wgMainCacheType] ) ) { +} elseif ( isset( $wgObjectCaches[$wgMainCacheType]['servers'] ) ) { $mcc->set_servers( $wgObjectCaches[$wgMainCacheType]['servers'] ); } else { print "MediaWiki isn't configured for Memcached usage\n"; exit( 1 ); } -function mccShowHelp( $command ) { - $commandList = array( +/** + * Show this command line tool usage. + */ +function mccShowUsage() { + echo << 'grabs something', 'getsock' => 'lists sockets', 'set' => 'changes something', @@ -48,20 +93,22 @@ function mccShowHelp( $command ) { 'exit' => 'exit mcc', 'quit' => 'exit mcc', 'help' => 'help about a command', - ); + ]; if ( !$command ) { $command = 'fullhelp'; } if ( $command === 'fullhelp' ) { $max_cmd_len = max( array_map( 'strlen', array_keys( $commandList ) ) ); foreach ( $commandList as $cmd => $desc ) { - printf( "%-{$max_cmd_len}s: %s\n", $cmd, $desc ); + $output .= sprintf( "%-{$max_cmd_len}s: %s\n", $cmd, $desc ); } } elseif ( isset( $commandList[$command] ) ) { - print "$command: $commandList[$command]\n"; + $output .= "$command: $commandList[$command]\n"; } else { - print "$command: command does not exist or no help for it\n"; + $output .= "$command: command does not exist or no help for it\n"; } + + return $output; } do { @@ -70,7 +117,9 @@ do { $quit = false; $line = Maintenance::readconsole(); - if ( $line === false ) exit; + if ( $line === false ) { + exit; + } $args = explode( ' ', $line ); $command = array_shift( $args ); @@ -79,7 +128,7 @@ do { switch ( $command ) { case 'help': // show an help message - mccShowHelp( array_shift( $args ) ); + print mccGetHelp( array_shift( $args ) ); break; case 'get':