xref: /aosp_15_r20/external/libnl/doc/resolve-asciidoc-refs.py (revision 4dc78e53d49367fa8e61b07018507c90983a077d)
1*4dc78e53SAndroid Build Coastguard Worker#!/usr/bin/env python
2*4dc78e53SAndroid Build Coastguard Worker
3*4dc78e53SAndroid Build Coastguard Workerfrom __future__ import print_function
4*4dc78e53SAndroid Build Coastguard Worker
5*4dc78e53SAndroid Build Coastguard Workerimport re
6*4dc78e53SAndroid Build Coastguard Workerimport sys
7*4dc78e53SAndroid Build Coastguard Worker
8*4dc78e53SAndroid Build Coastguard Workerrefs = {}
9*4dc78e53SAndroid Build Coastguard Workercomplete_file = ""
10*4dc78e53SAndroid Build Coastguard Worker
11*4dc78e53SAndroid Build Coastguard Workerfor line in open(sys.argv[1], "r"):
12*4dc78e53SAndroid Build Coastguard Worker    complete_file += line
13*4dc78e53SAndroid Build Coastguard Worker
14*4dc78e53SAndroid Build Coastguard Workerfor m in re.findall("\\[\\[(.+)\\]\\]\n=+ ([^\n]+)", complete_file):
15*4dc78e53SAndroid Build Coastguard Worker    ref, title = m
16*4dc78e53SAndroid Build Coastguard Worker    refs["<<" + ref + ">>"] = "<<" + ref + ", " + title + ">>"
17*4dc78e53SAndroid Build Coastguard Worker
18*4dc78e53SAndroid Build Coastguard Worker
19*4dc78e53SAndroid Build Coastguard Workerdef translate(match):
20*4dc78e53SAndroid Build Coastguard Worker    try:
21*4dc78e53SAndroid Build Coastguard Worker        return refs[match.group(0)]
22*4dc78e53SAndroid Build Coastguard Worker    except KeyError:
23*4dc78e53SAndroid Build Coastguard Worker        return ""
24*4dc78e53SAndroid Build Coastguard Worker
25*4dc78e53SAndroid Build Coastguard Worker
26*4dc78e53SAndroid Build Coastguard Workerrc = re.compile("|".join(map(re.escape, sorted(refs, reverse=True))))
27*4dc78e53SAndroid Build Coastguard Workerfor line in open(sys.argv[1], "r"):
28*4dc78e53SAndroid Build Coastguard Worker    print(rc.sub(translate, line), end="")
29