#!python
from fontFeatures.feeLib import FeeParser
from fontFeatures.optimizer import Optimizer
from fontFeatures.ttLib import unparse
from fontTools.ttLib import TTFont
from babelfont import Babelfont
import sys
import argparse
import os
import warnings

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('--load', action='store_true',
                    help='Load features from font file')
parser.add_argument('-O', nargs='?', const=1, type=int, default=1,
                    help='Optimization level')
parser.add_argument("--master",
                    help="Master name for .glyphs fonts", metavar="MASTER")

parser.add_argument("font",
                    help="Font file (.otf/.glyphs) to process", metavar="FONT")
parser.add_argument("fee",
                    help="FEE file to process", metavar="FEE")

args = parser.parse_args()

font = Babelfont.open(args.font,master=args.master)
if args.font.endswith("tf") and args.load:
	font = TTFont(args.font)
	p.fontfeatures = unparse(font)

p = FeeParser(font)
p.parseFile(args.fee)
Optimizer(p.fontfeatures).optimize(level=args.O)
print(p.fontfeatures.asFea())
if p.font_modified:
	modified = "modified-%s" % os.path.basename(args.font)
	p.font.save(modified)
	warnings.warn("Modified font written on %s" % modified)

