xref: /aosp_15_r20/external/fonttools/Lib/fontTools/__main__.py (revision e1fe3e4ad2793916b15cccdc4a7da52a7e1dd0e9)
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