X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2Fmcc.php;h=e70060e2f693f19a55ca2f673b43606b94821ed1;hb=28a23740d89cf8aa1bcca7cde04366477e543de8;hp=e07e62db26cd85855af4db951d2d46e9d28a993f;hpb=2b3224220d9251fd73c03012465e8470e2a835e1;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/mcc.php b/maintenance/mcc.php index e07e62db26..e70060e2f6 100644 --- a/maintenance/mcc.php +++ b/maintenance/mcc.php @@ -22,15 +22,67 @@ * @ingroup Maintenance */ -/** */ -require_once( __DIR__ . '/commandLine.inc' ); +$optionsWithArgs = [ 'cache' ]; +$optionsWithoutArgs = [ + 'debug', 'help' +]; +require_once __DIR__ . '/commandLine.inc'; + +$debug = isset( $options['debug'] ); +$help = isset( $options['help'] ); +$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]['servers'] ) ) { + $mcc->set_servers( $wgObjectCaches[$wgMainCacheType]['servers'] ); +} else { + print "MediaWiki isn't configured for Memcached usage\n"; + exit( 1 ); +} + +/** + * Show this command line tool usage. + */ +function mccShowUsage() { + echo << true/*, 'debug' => true*/ ) ); -$mcc->set_servers( $wgMemCachedServers ); -# $mcc->set_debug( true ); +Options: + --debug Set debug mode on the memcached connection. + --help This help screen. -function mccShowHelp( $command ) { - $commandList = array( +Interactive commands: + +EOF; + print "\t"; + print str_replace( "\n", "\n\t", mccGetHelp( false ) ); + print "\n"; +} + +function mccGetHelp( $command ) { + $output = ''; + $commandList = [ 'get' => 'grabs something', 'getsock' => 'lists sockets', 'set' => 'changes something', @@ -41,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 { @@ -63,7 +117,9 @@ do { $quit = false; $line = Maintenance::readconsole(); - if ( $line === false ) exit; + if ( $line === false ) { + exit; + } $args = explode( ' ', $line ); $command = array_shift( $args ); @@ -72,8 +128,8 @@ do { switch ( $command ) { case 'help': // show an help message - mccShowHelp( array_shift( $args ) ); - break; + print mccGetHelp( array_shift( $args ) ); + break; case 'get': $sub = ''; @@ -93,7 +149,7 @@ do { } else { var_dump( $res ); } - break; + break; case 'getsock': $res = $mcc->get( $args[0] );