1*e1fe3e4aSElliott Hughesimport sys 2*e1fe3e4aSElliott Hughes 3*e1fe3e4aSElliott Hughes 4*e1fe3e4aSElliott Hughesdef main(args=None): 5*e1fe3e4aSElliott Hughes if args is None: 6*e1fe3e4aSElliott Hughes args = sys.argv[1:] 7*e1fe3e4aSElliott Hughes 8*e1fe3e4aSElliott Hughes # TODO Handle library-wide options. Eg.: 9*e1fe3e4aSElliott Hughes # --unicodedata 10*e1fe3e4aSElliott Hughes # --verbose / other logging stuff 11*e1fe3e4aSElliott Hughes 12*e1fe3e4aSElliott Hughes # TODO Allow a way to run arbitrary modules? Useful for setting 13*e1fe3e4aSElliott Hughes # library-wide options and calling another library. Eg.: 14*e1fe3e4aSElliott Hughes # 15*e1fe3e4aSElliott Hughes # $ fonttools --unicodedata=... fontmake ... 16*e1fe3e4aSElliott Hughes # 17*e1fe3e4aSElliott Hughes # This allows for a git-like command where thirdparty commands 18*e1fe3e4aSElliott Hughes # can be added. Should we just try importing the fonttools 19*e1fe3e4aSElliott Hughes # module first and try without if it fails? 20*e1fe3e4aSElliott Hughes 21*e1fe3e4aSElliott Hughes if len(sys.argv) < 2: 22*e1fe3e4aSElliott Hughes sys.argv.append("help") 23*e1fe3e4aSElliott Hughes if sys.argv[1] == "-h" or sys.argv[1] == "--help": 24*e1fe3e4aSElliott Hughes sys.argv[1] = "help" 25*e1fe3e4aSElliott Hughes mod = "fontTools." + sys.argv[1] 26*e1fe3e4aSElliott Hughes sys.argv[1] = sys.argv[0] + " " + sys.argv[1] 27*e1fe3e4aSElliott Hughes del sys.argv[0] 28*e1fe3e4aSElliott Hughes 29*e1fe3e4aSElliott Hughes import runpy 30*e1fe3e4aSElliott Hughes 31*e1fe3e4aSElliott Hughes runpy.run_module(mod, run_name="__main__") 32*e1fe3e4aSElliott Hughes 33*e1fe3e4aSElliott Hughes 34*e1fe3e4aSElliott Hughesif __name__ == "__main__": 35*e1fe3e4aSElliott Hughes sys.exit(main()) 36