fixed discussion namespace
[lhc/web/wiklou.git] / maintenance / mcc.php
index 5bf56da..73b03a1 100755 (executable)
@@ -1,35 +1,72 @@
 <?php
-include_once( "../includes/DefaultSettings.php" );
-include_once( "../LocalSettings.php" );
-include_once( "../includes/MemCachedClient.inc.php" );
+/**
+ * memcached diagnostic tool
+ *
+ * @todo document
+ * @package MediaWiki
+ * @subpackage Maintenance
+ */
 
-$mcc = new MemCachedClient();
+/** */
+require_once( "commandLine.inc" );
+require_once("memcached-client.php");
+
+$mcc = new memcached( array('persistant' => true) );
 $mcc->set_servers( $wgMemCachedServers );
+$mcc->set_debug( true );
 
 do {
        $bad = false;
        $quit = false;
-       $line = readline( "> " );
+       $line = readconsole( "> " );
+       if ($line === false) exit;
        $args = explode( " ", $line );
        $command = array_shift( $args );
        switch ( $command ) {
                case "get":
-                       $res = $mcc->get( implode( " ", $args ) );
+                       print "Getting {$args[0]}[{$args[1]}]\n";
+                       $res = $mcc->get( $args[0] );
+                       if ( array_key_exists( 1, $args ) ) {
+                               $res = $res[$args[1]];
+                       }
                        if ( $res === false ) {
-                               print 'Error: ' . $mcc->error_string() . "\n";
+                               #print 'Error: ' . $mcc->error_string() . "\n";
+                               print "MemCached error\n";
                        } elseif ( is_string( $res ) ) {
                                print "$res\n";
                        } else {
                                var_dump( $res );
                        }
                        break;
+               case "getsock":
+                       $res = $mcc->get( $args[0] );
+                       $sock = $mcc->get_sock( $args[0] );
+                       var_dump( $sock );
+                       break;
                case "set":
                        $key = array_shift( $args );
-                       if ( !$mcc->set( $key, implode( " ", $args ), 0 ) ) {
-                               print 'Error: ' . $mcc->error_string() . "\n";
+                       if ( $args[0] == "#" && is_numeric( $args[1] ) ) {
+                               $value = str_repeat( "*", $args[1] );
+                       } else {
+                               $value = implode( " ", $args );
+                       }
+                       if ( !$mcc->set( $key, $value, 0 ) ) {
+                               #print 'Error: ' . $mcc->error_string() . "\n";
+                               print "MemCached error\n";
                        }
                        break;
+               case "delete":
+                       $key = implode( " ", $args );
+                       if ( !$mcc->delete( $key ) ) {
+                               #print 'Error: ' . $mcc->error_string() . "\n";
+                               print "MemCached error\n";
+                       }
+                       break;                                 
+               case "dumpmcc":
+                       var_dump( $mcc );
+                       break;
                case "quit":
+               case "exit":
                        $quit = true;
                        break;
                default:
@@ -40,8 +77,10 @@ do {
                        print "Bad command\n";
                }
        } else {
-               readline_add_history( $line );
+               if ( function_exists( "readline_add_history" ) ) {
+                       readline_add_history( $line );
+               }
        }
 } while ( !$quit );
-?>
 
+?>