mirror of
https://github.com/fluencelabs/redis
synced 2025-06-16 02:31:20 +00:00
Refactor help-related code into redis-cli.c
This commit is contained in:
@ -1,5 +1,24 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
GROUPS = [
|
||||
"generic",
|
||||
"string",
|
||||
"list",
|
||||
"set",
|
||||
"sorted_set",
|
||||
"hash",
|
||||
"pubsub",
|
||||
"transactions",
|
||||
"connection",
|
||||
"server"
|
||||
].freeze
|
||||
|
||||
GROUPS_BY_NAME = Hash[*
|
||||
GROUPS.each_with_index.map do |n,i|
|
||||
[n,i]
|
||||
end.flatten
|
||||
].freeze
|
||||
|
||||
def argument arg
|
||||
name = arg["name"].is_a?(Array) ? arg["name"].join(" ") : arg["name"]
|
||||
name = arg["enum"].join "|" if "enum" == arg["type"]
|
||||
@ -39,21 +58,54 @@ def commands
|
||||
end
|
||||
end
|
||||
|
||||
def generate_groups
|
||||
GROUPS.map do |n|
|
||||
"\"#{n}\""
|
||||
end.join(",\n ");
|
||||
end
|
||||
|
||||
def generate_commands
|
||||
commands.to_a.sort do |x,y|
|
||||
x[0] <=> y[0]
|
||||
end.map do |key, command|
|
||||
<<-SPEC
|
||||
group = GROUPS_BY_NAME[command["group"]]
|
||||
if group.nil?
|
||||
STDERR.puts "Please update groups array in #{__FILE__}"
|
||||
raise "Unknown group #{command["group"]}"
|
||||
end
|
||||
|
||||
ret = <<-SPEC
|
||||
{ "#{key}",
|
||||
"#{arguments(command)}",
|
||||
"#{command["summary"]}",
|
||||
COMMAND_GROUP_#{command["group"].upcase},
|
||||
#{group},
|
||||
"#{command["since"]}" }
|
||||
SPEC
|
||||
end.join(", ")
|
||||
ret.strip
|
||||
end.join(",\n ")
|
||||
end
|
||||
|
||||
# Write to stdout
|
||||
tmpl = File.read "./utils/help.h"
|
||||
puts "\n// Auto-generated, do not edit.\n" + tmpl.sub("__COMMANDS__", generate_commands)
|
||||
puts <<-HELP_H
|
||||
/* Automatically generated by #{__FILE__}, do not edit. */
|
||||
|
||||
#ifndef __REDIS_HELP_H
|
||||
#define __REDIS_HELP_H
|
||||
|
||||
static char *commandGroups[] = {
|
||||
#{generate_groups}
|
||||
};
|
||||
|
||||
struct commandHelp {
|
||||
char *name;
|
||||
char *params;
|
||||
char *summary;
|
||||
int group;
|
||||
char *since;
|
||||
} commandHelp[] = {
|
||||
#{generate_commands}
|
||||
};
|
||||
|
||||
#endif
|
||||
HELP_H
|
||||
|
||||
|
Reference in New Issue
Block a user