diff options
author | samuraikamel <[email protected]> | 2024-11-12 10:07:20 -0800 |
---|---|---|
committer | samuraikamel <[email protected]> | 2024-11-12 10:07:20 -0800 |
commit | f5284bd7d4774b36d9f18a8dcd2db9c68063edd9 (patch) | |
tree | 6cbee3c1b4d482912aa5d98729fa1e521b686db1 /lib/astal/io | |
parent | ad7aa1d0bc601df658627295b81e7ef7b914aa98 (diff) |
Change gir.py's to symlink
Diffstat (limited to 'lib/astal/io')
l---------[-rw-r--r--] | lib/astal/io/gir.py | 59 |
1 files changed, 1 insertions, 58 deletions
diff --git a/lib/astal/io/gir.py b/lib/astal/io/gir.py index f397b3e..16a3a64 100644..120000 --- a/lib/astal/io/gir.py +++ b/lib/astal/io/gir.py @@ -1,58 +1 @@ -""" -Vala's generated gir does not contain comments, -so we use valadoc to generate them. However, they are formatted -for valadoc and not gi-docgen so we need to fix it. -""" - -import xml.etree.ElementTree as ET -import html -import sys -import subprocess -import os - -def fix_gir(name: str, gir: str, out: str): - namespaces = { - "": "http://www.gtk.org/introspection/core/1.0", - "c": "http://www.gtk.org/introspection/c/1.0", - "glib": "http://www.gtk.org/introspection/glib/1.0", - } - for prefix, uri in namespaces.items(): - ET.register_namespace(prefix, uri) - - tree = ET.parse(gir) - root = tree.getroot() - - for doc in root.findall(".//doc", namespaces): - if doc.text: - doc.text = ( - html.unescape(doc.text).replace("<para>", "").replace("</para>", "") - ) - - if (inc := root.find("c:include", namespaces)) is not None: - inc.set("name", f"{name}.h") - else: - print("no c:include tag found", file=sys.stderr) - exit(1) - - tree.write(out, encoding="utf-8", xml_declaration=True) - - -def valadoc(name: str, gir: str, args: list[str]): - cmd = [os.getenv("VALADOC", "valadoc"), "-o", "docs", "--package-name", name, "--gir", gir, *args] - try: - subprocess.run(cmd, check=True, text=True, capture_output=True) - except subprocess.CalledProcessError as e: - print(e.stderr, file=sys.stderr) - exit(1) - - -if __name__ == "__main__": - name = sys.argv[1] - in_out = sys.argv[2].split(":") - args = sys.argv[3:] - - gir = in_out[0] - out = in_out[1] if len(in_out) > 1 else gir - - valadoc(name, gir, args) - fix_gir(name, gir, out) +../../gir.py
\ No newline at end of file |