dumb help messages. FIXME
[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 function mccShowHelp($command) {
19
20 if(! $command ) { $command = 'fullhelp'; }
21 $onlyone = true;
22
23 switch ( $command ) {
24
25 case 'fullhelp':
26 // will show help for all commands
27 $onlyone = false;
28
29 case 'get':
30 print "get: grabs something\n";
31 if($onlyone) { break; }
32
33 case 'getsock':
34 print "getsock: lists sockets\n";
35 if($onlyone) { break; }
36
37 case 'set':
38 print "set: changes something\n";
39 if($onlyone) { break; }
40
41 case 'delete':
42 print "delete: deletes something\n";
43 if($onlyone) { break; }
44
45 case 'dumpmcc':
46 print "dumpmcc: shows the whole thing\n";
47 if($onlyone) { break; }
48
49 case 'exit':
50 case 'quit':
51 print "exit or quit: exit mcc\n";
52 if($onlyone) { break; }
53
54 case 'help':
55 print "help: help about a command\n";
56 if($onlyone) { break; }
57
58 default:
59 if($onlyone) {
60 print "$command: command does not exist or no help for it\n";
61 }
62 }
63 }
64
65 do {
66 $bad = false;
67 $showhelp = false;
68 $quit = false;
69
70 $line = readconsole( '> ' );
71 if ($line === false) exit;
72
73 $args = explode( ' ', $line );
74 $command = array_shift( $args );
75
76 // process command
77 switch ( $command ) {
78 case 'help':
79 // show an help message
80 mccShowHelp(array_shift($args));
81 break;
82
83 case 'get':
84 print "Getting {$args[0]}[{$args[1]}]\n";
85 $res = $mcc->get( $args[0] );
86 if ( array_key_exists( 1, $args ) ) {
87 $res = $res[$args[1]];
88 }
89 if ( $res === false ) {
90 #print 'Error: ' . $mcc->error_string() . "\n";
91 print "MemCached error\n";
92 } elseif ( is_string( $res ) ) {
93 print "$res\n";
94 } else {
95 var_dump( $res );
96 }
97 break;
98
99 case 'getsock':
100 $res = $mcc->get( $args[0] );
101 $sock = $mcc->get_sock( $args[0] );
102 var_dump( $sock );
103 break;
104
105 case 'set':
106 $key = array_shift( $args );
107 if ( $args[0] == "#" && is_numeric( $args[1] ) ) {
108 $value = str_repeat( '*', $args[1] );
109 } else {
110 $value = implode( ' ', $args );
111 }
112 if ( !$mcc->set( $key, $value, 0 ) ) {
113 #print 'Error: ' . $mcc->error_string() . "\n";
114 print "MemCached error\n";
115 }
116 break;
117
118 case 'delete':
119 $key = implode( ' ', $args );
120 if ( !$mcc->delete( $key ) ) {
121 #print 'Error: ' . $mcc->error_string() . "\n";
122 print "MemCached error\n";
123 }
124 break;
125
126 case 'dumpmcc':
127 var_dump( $mcc );
128 break;
129
130 case 'quit':
131 case 'exit':
132 $quit = true;
133 break;
134
135 default:
136 $bad = true;
137 } // switch() end
138
139 if ( $bad ) {
140 if ( $command ) {
141 print "Bad command\n";
142 }
143 } else {
144 if ( function_exists( 'readline_add_history' ) ) {
145 readline_add_history( $line );
146 }
147 }
148 } while ( !$quit );
149
150 ?>