#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import sys
import getopt
import pykakasi

_VERSION = '0.22'

def show_version():
    print (os.path.basename(sys.argv[0]) + " v" + _VERSION)

def usage():
    print ("Python implementation of kakasi\n")

def do_wakati(outfile):
    wakati = pykakasi.wakati()
    converter = wakati.getConverter()
    otext = ""
    for line in sys.stdin:
        sys.stdout.write(converter.do(line))

def do_kakasi(outfile):
    kakasi = pykakasi.kakasi()
    kakasi.setMode("H","a")
    kakasi.setMode("K","a")
    kakasi.setMode("J","a")
    kakasi.setMode("r","Hepburn")
    converter  = kakasi.getConverter()
    otext = ""
    for line in sys.stdin:
        sys.stdout.write(converter.do(line))

def main():
    try:
        opts, args = getopt.getopt(sys.argv[1:], "ho:vw", ["help","output=","wakati"])
    except getopt.GetoptError as err:
        print (err)
        usage()
        sys.exit(2)
    output = None
    wakati = False
    for o, a in opts:
        if o == "-v": 
            show_version()
            sys.exit()
        elif o in ("-h", "--help"):
            show_version()
            usage()
            sys.exit()
        elif o in ("-o", "--output"):
            output = a
        elif o in ("-w", "--wakati"):
            wakati = True
        else:
            assert False, "unhandled option"
 
    if wakati:
        do_wakati(outfile = output)
    else:
        do_kakasi(outfile = output)

if __name__ == "__main__":
    sys.exit(main())
