diff --git a/Lib/fontTools/designspaceLib/__init__.py b/Lib/fontTools/designspaceLib/__init__.py index 69d4912c0..c5d31cdc4 100644 --- a/Lib/fontTools/designspaceLib/__init__.py +++ b/Lib/fontTools/designspaceLib/__init__.py @@ -3279,3 +3279,23 @@ class DesignSpaceDocument(LogMixin, AsDictMixin): finally: for source, font in zip(self.sources, fonts): source.font = font + + +def main(args=None): + """Roundtrip .designspace file through the DesignSpaceDocument class""" + + if args is None: + import sys + + args = sys.argv[1:] + + from argparse import ArgumentParser + + parser = ArgumentParser(prog="designspaceLib", description=main.__doc__) + parser.add_argument("input") + parser.add_argument("output") + + options = parser.parse_args(args) + + ds = DesignSpaceDocument.fromfile(options.input) + ds.write(options.output) diff --git a/Lib/fontTools/designspaceLib/__main__.py b/Lib/fontTools/designspaceLib/__main__.py new file mode 100644 index 000000000..8f5e44ea9 --- /dev/null +++ b/Lib/fontTools/designspaceLib/__main__.py @@ -0,0 +1,6 @@ +import sys +from fontTools.designspaceLib import main + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/Lib/fontTools/subset/__init__.py b/Lib/fontTools/subset/__init__.py index 9b1758435..250a07ef1 100644 --- a/Lib/fontTools/subset/__init__.py +++ b/Lib/fontTools/subset/__init__.py @@ -3733,6 +3733,3 @@ __all__ = [ "parse_unicodes", "main", ] - -if __name__ == "__main__": - sys.exit(main())