Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
50d0e82d
Commit
50d0e82d
authored
Nov 28, 2010
by
Pieter Noordhuis
Browse files
Update help.h generator script to output man-style argument list
parent
2612e052
Changes
2
Expand all
Hide whitespace changes
Inline
Side-by-side
src/help.h
View file @
50d0e82d
This diff is collapsed.
Click to expand it.
utils/generate-command-help.rb
View file @
50d0e82d
#!/usr/bin/env ruby
#!/usr/bin/env ruby
require
'net/http'
require
'net/https'
require
'json'
require
'uri'
dest
=
ARGV
[
0
]
tmpl
=
File
.
read
'./utils/help.h'
url
=
URI
.
parse
'https://github.com/antirez/redis-doc/raw/master/commands.json'
client
=
Net
::
HTTP
.
new
url
.
host
,
url
.
port
client
.
use_ssl
=
true
res
=
client
.
get
url
.
path
def
argument
arg
def
argument
arg
name
=
arg
[
'
name
'
].
is_a?
(
Array
)
?
arg
[
'
name
'
].
join
(
' '
)
:
arg
[
'
name
'
]
name
=
arg
[
"
name
"
].
is_a?
(
Array
)
?
arg
[
"
name
"
].
join
(
" "
)
:
arg
[
"
name
"
]
name
=
arg
[
'
enum
'
].
join
'|'
if
'
enum
'
==
arg
[
'
type
'
]
name
=
arg
[
"
enum
"
].
join
"|"
if
"
enum
"
==
arg
[
"
type
"
]
name
=
arg
[
'
command
'
]
+
' '
+
name
if
arg
[
'
command
'
]
name
=
arg
[
"
command
"
]
+
" "
+
name
if
arg
[
"
command
"
]
if
arg
[
'
multiple
'
]
if
arg
[
"
multiple
"
]
name
=
"
(
#{
name
}
)
"
name
=
"
#{
name
}
[
#{
name
}
...]
"
name
+=
arg
[
'optional'
]
?
'*'
:
'+'
end
els
if
arg
[
'
optional
'
]
if
arg
[
"
optional
"
]
name
=
"
(
#{
name
}
)?
"
name
=
"
[
#{
name
}
]
"
end
end
name
name
end
end
def
arguments
command
def
arguments
command
return
'-'
unless
command
[
'
arguments
'
]
return
"-"
unless
command
[
"
arguments
"
]
command
[
'
arguments
'
].
map
do
|
arg
|
command
[
"
arguments
"
].
map
do
|
arg
|
argument
arg
argument
arg
end
.
join
' '
end
.
join
" "
end
def
commands
return
@commands
if
@commands
require
"net/http"
require
"net/https"
require
"json"
require
"uri"
url
=
URI
.
parse
"https://github.com/antirez/redis-doc/raw/master/commands.json"
client
=
Net
::
HTTP
.
new
url
.
host
,
url
.
port
client
.
use_ssl
=
true
response
=
client
.
get
url
.
path
if
response
.
is_a?
(
Net
::
HTTPSuccess
)
@commands
=
JSON
.
parse
(
response
.
body
)
else
response
.
error!
end
end
end
case
res
def
generate_commands
when
Net
::
HTTPSuccess
commands
.
to_a
.
sort
do
|
x
,
y
|
first
=
true
x
[
0
]
<=>
y
[
0
]
commands
=
JSON
.
parse
(
res
.
body
)
end
.
map
do
|
key
,
command
|
c
=
commands
.
map
do
|
key
,
command
|
<<-
SPEC
buf
=
if
first
{ "
#{
key
}
",
first
=
false
"
#{
arguments
(
command
)
}
",
' '
"
#{
command
[
"summary"
]
}
",
else
COMMAND_GROUP_
#{
command
[
"group"
].
upcase
}
,
"
\n
,"
"
#{
command
[
"since"
]
}
" }
end
SPEC
buf
+=
" {
\"
#{
key
}
\"\n
"
+
end
.
join
(
", "
)
" ,
\"
#{
arguments
(
command
)
}
\"\n
"
+
end
" ,
\"
#{
command
[
'summary'
]
}
\"\n
"
+
" , COMMAND_GROUP_
#{
command
[
'group'
].
upcase
}
\n
"
+
# Write to stdout
" ,
\"
#{
command
[
'since'
]
}
\"
}"
tmpl
=
File
.
read
"./utils/help.h"
end
.
join
(
"
\n
"
)
puts
"
\n
// Auto-generated, do not edit.
\n
"
+
tmpl
.
sub
(
"__COMMANDS__"
,
generate_commands
)
puts
"
\n
// Auto-generated, do not edit.
\n
"
+
tmpl
.
sub
(
'__COMMANDS__'
,
c
)
else
res
.
error!
end
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment