MediaWiki
REL1_31
cdb.php
Go to the documentation of this file.
1
<?php
25
use Cdb\Exception as CdbException;
26
use Cdb\Reader as CdbReader;
27
28
require_once __DIR__ .
'/commandLine.inc'
;
29
30
function
cdbShowHelp
(
$command
) {
31
$commandList = [
32
'load'
=>
'load a cdb file for reading'
,
33
'get'
=>
'get a value for a key'
,
34
'exit'
=>
'exit cdb'
,
35
'quit'
=>
'exit cdb'
,
36
'help'
=>
'help about a command'
,
37
];
38
if
( !
$command
) {
39
$command
=
'fullhelp'
;
40
}
41
if
(
$command
===
'fullhelp'
) {
42
$max_cmd_len = max( array_map(
'strlen'
, array_keys( $commandList ) ) );
43
foreach
( $commandList as $cmd => $desc ) {
44
printf(
"%-{$max_cmd_len}s: %s\n"
, $cmd, $desc );
45
}
46
} elseif ( isset( $commandList[
$command
] ) ) {
47
print
"$command: $commandList[$command]\n"
;
48
}
else
{
49
print
"$command: command does not exist or no help for it\n"
;
50
}
51
}
52
53
do
{
54
$bad =
false
;
55
$showhelp
=
false
;
56
$quit
=
false
;
57
static
$fileHandle
=
false
;
58
59
$line
=
Maintenance::readconsole
();
60
if
(
$line
===
false
) {
61
exit;
62
}
63
64
$args
= explode(
' '
,
$line
, 2 );
65
$command
= array_shift(
$args
);
66
67
// process command
68
switch
(
$command
) {
69
case
'help'
:
70
// show an help message
71
cdbShowHelp
( array_shift(
$args
) );
72
break
;
73
case
'load'
:
74
if
( !isset(
$args
[0] ) ) {
75
print
"Need a filename there buddy\n"
;
76
break
;
77
}
78
$file =
$args
[0];
79
print
"Loading cdb file $file..."
;
80
try
{
81
$fileHandle
= CdbReader::open( $file );
82
}
catch
( CdbException
$e
) {
83
}
84
85
if
( !
$fileHandle
) {
86
print
"not a cdb file or unable to read it\n"
;
87
}
else
{
88
print
"ok\n"
;
89
}
90
break
;
91
case
'get'
:
92
if
( !
$fileHandle
) {
93
print
"Need to load a cdb file first\n"
;
94
break
;
95
}
96
if
( !isset(
$args
[0] ) ) {
97
print
"Need to specify a key, Luke\n"
;
98
break
;
99
}
100
try
{
101
$res
=
$fileHandle
->get(
$args
[0] );
102
}
catch
( CdbException
$e
) {
103
print
"Unable to read key from file\n"
;
104
break
;
105
}
106
if
(
$res
===
false
) {
107
print
"No such key/value pair\n"
;
108
} elseif ( is_string(
$res
) ) {
109
print
"$res\n"
;
110
}
else
{
111
var_dump(
$res
);
112
}
113
break
;
114
case
'quit'
:
115
case
'exit'
:
116
$quit
=
true
;
117
break
;
118
119
default
:
120
$bad =
true
;
121
}
// switch() end
122
123
if
( $bad ) {
124
if
(
$command
) {
125
print
"Bad command\n"
;
126
}
127
}
else
{
128
if
( function_exists(
'readline_add_history'
) ) {
129
readline_add_history(
$line
);
130
}
131
}
132
}
while
( !
$quit
);
cdbShowHelp
cdbShowHelp( $command)
Definition
cdb.php:30
$line
$line
Definition
cdb.php:59
$fileHandle
static $fileHandle
Definition
cdb.php:57
$command
$command
Definition
cdb.php:65
$showhelp
$showhelp
Definition
cdb.php:55
$quit
$quit
Definition
cdb.php:56
$args
if( $line===false) $args
Definition
cdb.php:64
Maintenance\readconsole
static readconsole( $prompt='> ')
Prompt the console for input.
Definition
Maintenance.php:1524
$res
$res
Definition
database.txt:21
$e
returning false will NOT prevent logging $e
Definition
hooks.txt:2176
print
while(( $__line=Maintenance::readconsole()) !==false) print
Definition
eval.php:64
maintenance
cdb.php
Generated on Mon Nov 25 2024 15:35:57 for MediaWiki by
1.10.0