#! /usr/bin/env python
import sys

from pyhbase.connection import HBaseConnection

# TODO(hammer): Use optparse or python-gflags here
if __name__=="__main__":
  def usage():
    print """
  Usage: %s [-h host[:port]] command [arg1 [arg2...]]

  Commands:
      list_tables
      is_table_enabled table

      create_table table [family1 [family2 ...]]
      enable_table table
      disable_table table

      get table row [family1[:qualifier1] [family2[:qualifier2] ...]]
  """ % sys.argv[0]

  if len(sys.argv) <= 1 or sys.argv[1] == '--help':
    usage()
    sys.exit(0)

  host = 'localhost'
  port = 9090
  argi = 1

  if sys.argv[argi] == '-h':
    parts = sys.argv[argi+1].split(':')
    host = parts[0]
    if len(parts) == 2:
      port = int(parts[1])
    argi += 2

  cmd = sys.argv[argi]
  args = sys.argv[argi+1:]

  connection = HBaseConnection(host, port)

  if cmd == 'list_tables':
    if len(args) != 0:
      usage()
      sys.exit(1)
    print connection.list_tables(*args)
  elif cmd == 'is_table_enabled':
    if len(args) != 1:
      usage()
      sys.exit(1)
    print connection.is_table_enabled(*args)
  elif cmd == 'create_table':
    if len(args) < 1:
      usage()
      sys.exit(1)
    print connection.create_table(*args)
  elif cmd == 'enable_table':
    if len(args) != 1:
      usage()
      sys.exit(1)
    print connection.enable_table(*args)
  elif cmd == 'disable_table':
    if len(args) != 1:
      usage()
      sys.exit(1)
    print connection.disable_table(*args)
  elif cmd == 'get':
    if len(args) < 2:
      usage()
      sys.exit(1)
    print connection.get(*args)
  else:
    usage()
    sys.exit(1)

