[doc] Add help options to fonttools CLI

This commit is contained in:
Simon Cozens 2020-05-03 21:21:30 +01:00
parent ad4bc6f151
commit 02f23a214c
8 changed files with 47 additions and 2 deletions

View File

@ -5,8 +5,6 @@ def main(args=None):
if args is None:
args = sys.argv[1:]
# TODO Add help output, --help, etc.
# TODO Handle library-wide options. Eg.:
# --unicodedata
# --verbose / other logging stuff
@ -20,6 +18,10 @@ def main(args=None):
# can be added. Should we just try importing the fonttools
# module first and try without if it fails?
if len(sys.argv) < 2:
sys.argv.append("help")
if sys.argv[1] == "-h" or sys.argv[1] == "--help":
sys.argv[1] = "help"
mod = 'fontTools.'+sys.argv[1]
sys.argv[1] = sys.argv[0] + ' ' + sys.argv[1]
del sys.argv[0]

View File

@ -1,3 +1,4 @@
"""Convert a UFO font with cubic curves to quadratic curves"""
import sys
from .cli import main

View File

@ -1,3 +1,4 @@
"""Add features from a feature file (.fea) into a OTF font"""
from fontTools.misc.py23 import *
from fontTools.ttLib import TTFont
from fontTools.feaLib.builder import addOpenTypeFeatures, Builder

View File

View File

@ -0,0 +1,35 @@
"""Show this help"""
import pkgutil
import sys
from setuptools import find_packages
from pkgutil import iter_modules
import fontTools
import importlib
def get_description(pkg):
try:
return __import__(pkg+".__main__",globals(),locals(),["__doc__"]).__doc__
except Exception as e:
return None
def show_help_list():
path = fontTools.__path__[0]
for pkg in find_packages(path):
qualifiedPkg = "fontTools."+pkg
description = get_description(qualifiedPkg)
if description:
print("fontools %-10s %s" % (pkg, description))
pkgpath = path + '/' + qualifiedPkg.replace('.', '/')
if (sys.version_info.major == 3 and sys.version_info.minor < 6):
for _, name, ispkg in iter_modules([pkgpath]):
if get_description(pkg+ '.' + name):
modules.add(pkg + '.' + name)
else:
for info in iter_modules([pkgpath]):
if get_description(pkg+ '.' + info.name):
modules.add(pkg + '.' + info.name)
if __name__ == '__main__':
print("fonttools v%s\n" % fontTools.__version__)
show_help_list()

View File

@ -1,6 +1,8 @@
"""Convert Monotype FontDame layout files to TTX"""
from fontTools.misc.py23 import *
import sys
from fontTools.mtiLib import main
if __name__ == '__main__':
sys.exit(main())

View File

@ -1,6 +1,8 @@
"""OpenType font subsetter and optimizer"""
from fontTools.misc.py23 import *
import sys
from fontTools.subset import main
if __name__ == '__main__':
sys.exit(main())

View File

@ -1,5 +1,7 @@
"""Build a variable font from a designspace file and masters"""
import sys
from fontTools.varLib import main
if __name__ == '__main__':
sys.exit(main())