Skip to content

Commit

Permalink
Add droonga-groonga command as a shorthand
Browse files Browse the repository at this point in the history
  • Loading branch information
piroor committed Apr 15, 2015
1 parent 8911c0c commit b5dc73e
Showing 1 changed file with 78 additions and 0 deletions.
78 changes: 78 additions & 0 deletions bin/droonga-groonga
@@ -0,0 +1,78 @@
#!/usr/bin/env ruby
#
# Copyright (C) 2015 Droonga Project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License version 2.1 as published by the Free Software Foundation.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

require "json"

require "droonga/command/base"

module Droonga
module Command
class Groonga < Base
def run
parse_options do |option|
option.banner("Usage: droonga-groonga [groonga-command-name] [options]")
option.banner(" ex: droonga-groonga select --table=Users")

option.separator("Formatting:")
option.on(:pretty,
"Output result as a pretty print JSON.",
:default => false)
end

groonga_command_name = ARGV.shift
groonga_message = {
"dataset" => @options[:dataset],
"type" => groonga_command_name,
"body" => build_params(ARGV),
}

response = client.request(groonga_message)
body = response["body"]

if @options[:pretty]
puts(JSON.pretty_generate(body))
else
puts(JSON.generate(body))
end

exit(true)
end

private
def build_params(argv)
params = {}
option_name = nil
argv.each do |arg|
case arg
when /\A--([^\s=]+)=(.+)\z/
params[$1] = $2
when /\A--([^\s=]+)\z/
option_name = $1
else
if option_name
params[option_name] = arg
option_name = nil
end
end
end
params
end
end
end
end

Droonga::Command::Groonga.new.run

0 comments on commit b5dc73e

Please sign in to comment.