code formatting
[lhc/web/wiklou.git] / maintenance / mcc.php
1 <?php
2 /**
3 * memcached diagnostic tool
4 *
5 * @todo document
6 * @package MediaWiki
7 * @subpackage Maintenance
8 */
9
10 /** */
11 require_once( 'commandLine.inc' );
12 require_once( 'memcached-client.php' );
13
14 $mcc = new memcached( array('persistant' => true, 'debug' => true) );
15 $mcc->set_servers( $wgMemCachedServers );
16 $mcc->set_debug( true );
17
18 do {
19 $bad = false;
20 $quit = false;
21
22 $line = readconsole( '> ' );
23 if ($line === false) exit;
24
25 $args = explode( ' ', $line );
26 $command = array_shift( $args );
27
28 switch ( $command ) {
29
30 case 'get':
31 print "Getting {$args[0]}[{$args[1]}]\n";
32 $res = $mcc->get( $args[0] );
33 if ( array_key_exists( 1, $args ) ) {
34 $res = $res[$args[1]];
35 }
36 if ( $res === false ) {
37 #print 'Error: ' . $mcc->error_string() . "\n";
38 print "MemCached error\n";
39 } elseif ( is_string( $res ) ) {
40 print "$res\n";
41 } else {
42 var_dump( $res );
43 }
44 break;
45
46 case 'getsock':
47 $res = $mcc->get( $args[0] );
48 $sock = $mcc->get_sock( $args[0] );
49 var_dump( $sock );
50 break;
51
52 case 'set':
53 $key = array_shift( $args );
54 if ( $args[0] == "#" && is_numeric( $args[1] ) ) {
55 $value = str_repeat( '*', $args[1] );
56 } else {
57 $value = implode( ' ', $args );
58 }
59 if ( !$mcc->set( $key, $value, 0 ) ) {
60 #print 'Error: ' . $mcc->error_string() . "\n";
61 print "MemCached error\n";
62 }
63 break;
64
65 case 'delete':
66 $key = implode( ' ', $args );
67 if ( !$mcc->delete( $key ) ) {
68 #print 'Error: ' . $mcc->error_string() . "\n";
69 print "MemCached error\n";
70 }
71 break;
72
73 case 'dumpmcc':
74 var_dump( $mcc );
75 break;
76
77 case 'quit':
78 case 'exit':
79 $quit = true;
80 break;
81
82 default:
83 $bad = true;
84 }
85 if ( $bad ) {
86 if ( $command ) {
87 print "Bad command\n";
88 }
89 } else {
90 if ( function_exists( 'readline_add_history' ) ) {
91 readline_add_history( $line );
92 }
93 }
94 } while ( !$quit );
95
96 ?>