summaryrefslogtreecommitdiff
path: root/utils/generate-command-help.rb
diff options
context:
space:
mode:
Diffstat (limited to 'utils/generate-command-help.rb')
-rwxr-xr-xutils/generate-command-help.rb151
1 files changed, 0 insertions, 151 deletions
diff --git a/utils/generate-command-help.rb b/utils/generate-command-help.rb
deleted file mode 100755
index 1042ce6d2..000000000
--- a/utils/generate-command-help.rb
+++ /dev/null
@@ -1,151 +0,0 @@
-#!/usr/bin/env ruby -w
-# Usage: generate-command-help.r [path/to/commands.json]
-# or: generate-commands-json.py | generate-command-help.rb -
-#
-# Defaults to downloading commands.json from the redis-doc repo if not provided
-# or STDINed.
-
-GROUPS = [
- "generic",
- "string",
- "list",
- "set",
- "sorted-set",
- "hash",
- "pubsub",
- "transactions",
- "connection",
- "server",
- "scripting",
- "hyperloglog",
- "cluster",
- "geo",
- "stream",
- "bitmap"
-].freeze
-
-GROUPS_BY_NAME = Hash[*
- GROUPS.each_with_index.map do |n,i|
- [n,i]
- end.flatten
-].freeze
-
-def argument arg
- if "block" == arg["type"]
- name = arg["arguments"].map do |entry|
- argument entry
- end.join " "
- elsif "oneof" == arg["type"]
- name = arg["arguments"].map do |entry|
- argument entry
- end.join "|"
- elsif "pure-token" == arg["type"]
- name = nil # prepended later
- else
- name = arg["name"].is_a?(Array) ? arg["name"].join(" ") : arg["name"]
- end
- if arg["multiple"]
- if arg["multiple_token"]
- name = "#{name} [#{arg["token"]} #{name} ...]"
- else
- name = "#{name} [#{name} ...]"
- end
- end
- if arg["token"]
- name = [arg["token"], name].compact.join " "
- end
- if arg["optional"]
- name = "[#{name}]"
- end
- name
-end
-
-def arguments command
- return "" unless command["arguments"]
- command["arguments"].map do |arg|
- argument arg
- end.join " "
-end
-
-def commands
- return @commands if @commands
-
- require "rubygems"
- require "net/http"
- require "net/https"
- require "json"
- require "uri"
- if ARGV.length > 0
- if ARGV[0] == '-'
- data = STDIN.read
- elsif FileTest.exist? ARGV[0]
- data = File.read(ARGV[0])
- else
- raise Exception.new "File not found: #{ARGV[0]}"
- end
- else
- url = URI.parse "https://raw.githubusercontent.com/redis/redis-doc/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)
- response.error!
- return
- else
- data = response.body
- end
- end
- @commands = JSON.parse(data)
-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|
- 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"]}",
- #{group},
- "#{command["since"]}" }
- SPEC
- ret.strip
- end.join(",\n ")
-end
-
-# Write to stdout
-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
-