#!/usr/bin/env python

import sys, os
import fontforge
import optparse

# print 'ARGV      :', sys.argv[1:]
parser = optparse.OptionParser()
parser.add_option('-w', '--woff',
                  dest="woff",
                  action="store_true",
                  default=False,
                  help='Save in WOFF format (.woff)'
                  )
parser.add_option('-o', '--otf',
                  dest="otf",
                  action="store_true",
                  default=False,
                  help='Save in OpenType format (.otf)'
                  )
parser.add_option('-t', '--ttf',
                  dest="ttf",
                  action="store_true",
                  default=False,
                  help='Save in TrueType format (.ttf)'
                  )
parser.add_option('-s', '--svg',
                  dest="svg",
                  action="store_true",
                  default=False,
                  help='Save in SVG Font format (.svg)'
                  )
parser.add_option('-e', '--eot',
                  dest="eot",
                  action="store_true",
                  default=False,
                  help='Save in Embedded OpenType format (.eot)'
                  )
parser.add_option('-u', '--ufo',
                  dest="ufo",
                  action="store_true",
                  default=False,
                  help='Save in UFO format (.ufo)'
                  )
options, remainder = parser.parse_args()

if not len(remainder) == 2:
    print "Only two non-keyword argument allowed."
    sys.exit()

fontname = remainder[0]
font = fontforge.open(fontname)

d = remainder[1] + '/'
filename = os.path.basename(fontname)
basename, ext = os.path.splitext(filename)

print d
print filename
print basename

woff_filename = d + basename + '.woff'
otf_filename = d + basename + '.otf'
ttf_filename = d + basename + '.ttf'
svg_filename = d + basename + '.svg'
eot_filename = d + basename + '.eot'
ufo_filename = d + basename + '.ufo'

if options.woff:
    print woff_filename
    font.generate(woff_filename)
if options.otf:
    print otf_filename
    font.generate(otf_filename)
if options.ttf:
    print ttf_filename
    font.generate(ttf_filename)
if options.svg:
    print svg_filename
    font.generate(svg_filename)
if options.ufo:
    print ufo_filename
    font.generate(ufo_filename)
if options.eot:
    print eot_filename
    if options.ttf:
        cmd = 'ttf2eot < %s > %s' % (ttf_filename, eot_filename)
        os.system(cmd)
    else:
        font.generate(ttf_filename)
        cmd = 'ttf2eot < %s > %s' % (ttf_filename, eot_filename)
        os.system(cmd)
        os.remove(ttf_filename)
