/** */
require_once( __DIR__ . '/commandLine.inc' );
-$mcc = new MWMemcached( array( 'persistent' => true ) );
+$debug = in_array( '--debug', $argv );
+$help = in_array( '--help', $argv );
+
+if( $help ) {
+ mccShowUsage();
+ exit( 0 );
+}
+$mcc = new MWMemcached( array(
+ 'persistent' => true,
+ 'debug' => $debug,
+) );
if ( $wgMainCacheType === CACHE_MEMCACHED ) {
$mcc->set_servers( $wgMemCachedServers );
exit( 1 );
}
-function mccShowHelp( $command ) {
+/**
+ * Show this command line tool usage.
+ */
+function mccShowUsage() {
+ echo <<<EOF
+Usage:
+ mcc.php [--debug]
+ mcc.php --help
+
+MemCached Command (mcc) is an interactive command tool that let you interact
+with the MediaWiki memcached cache.
+
+Options:
+ --debug Set debug mode on the memcached connection.
+ --help This help screen.
+
+Interactive commands:
+
+EOF;
+ print "\t";
+ print str_replace( "\n", "\n\t", mccGetHelp( false ) );
+ print "\n";
+}
+
+function mccGetHelp( $command ) {
+ $output = '';
$commandList = array(
'get' => 'grabs something',
'getsock' => 'lists sockets',
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 {
switch ( $command ) {
case 'help':
// show an help message
- mccShowHelp( array_shift( $args ) );
+ print mccGetHelp( array_shift( $args ) );
break;
case 'get':