import re with open('internal/router/router.go') as f: text = f.read() lines = text.split('\n') group_prefixes = {} group_prefixes['engine'] = '' for line in lines: stripped = line.strip() gm = re.match(r'(\w+)\s*:?=\s*(\w+)\.Group\("([^"]+)"', stripped) if gm: var_name = gm.group(1) parent = gm.group(2) path = gm.group(3) parent_prefix = group_prefixes.get(parent, '') group_prefixes[var_name] = parent_prefix + path routes = [] for line in lines: stripped = line.strip() rm = re.match(r'(\w+)\.(GET|POST|PUT|PATCH|DELETE)\("([^"]+)",', stripped) if rm: group_var = rm.group(1) method = rm.group(2) path = rm.group(3) prefix = group_prefixes.get(group_var, '') full_path = prefix + path routes.append((method, full_path)) routes.sort(key=lambda x: x[1]) for method, path in routes: print(f"{method} {path}") print(f"TOTAL:{len(routes)}")