#!python
from fontFeatures.feeLib import FeeParser
from fontFeatures.ttLib import unparse
from fontTools.ttLib import TTFont
import sys
from fontTools.feaLib.builder import addOpenTypeFeaturesFromString

from argparse import ArgumentParser, FileType

parser = ArgumentParser()
parser.add_argument("input", help="font file to process", metavar="OTF")
parser.add_argument(
    "feature",
    default="-",
    nargs="?",
    help="FEE file(s) to add",
    metavar="FEE",
)

parser.add_argument(
    "-i", "--index",
    dest="index", type=int, default=-1,
    help="Font index number (required for collections)",
)

parser.add_argument("-o", dest="output", help="path to output font", metavar="FILE")
args = parser.parse_args()

if args.input.endswith("c") and args.index == -1:
    print("Must provide -i argument with TrueType/OpenType collection file", file=sys.stderr)
    sys.exit(1)

output = args.output
if output is None:
    output = "fea-" + args.input

font = TTFont(args.input, fontNumber=args.index)
p = FeeParser(args.input)
# Unparse existing features
p.fea = unparse(font)
# Add features from FEE
p.parseFile(args.feature)

# Send it back to fea
fea = p.fea.asFea()
addOpenTypeFeaturesFromString(font, fea)
print("Saving on " + output)
font.save(output)
