From 7dfaf94349c18fd65cced3abaf38393c548492a0 Mon Sep 17 00:00:00 2001
From: John Estabrook <jestabro@vyos.io>
Date: Wed, 8 Jan 2025 11:10:29 -0600
Subject: [PATCH] xml: T7029: allow wildcard in include directive

---
 .../xml-component-version.xml.in              | 50 +------------------
 scripts/transclude-template                   |  5 +-
 2 files changed, 5 insertions(+), 50 deletions(-)

diff --git a/interface-definitions/xml-component-version.xml.in b/interface-definitions/xml-component-version.xml.in
index 67d86a1d02..70957c5fa8 100644
--- a/interface-definitions/xml-component-version.xml.in
+++ b/interface-definitions/xml-component-version.xml.in
@@ -1,52 +1,4 @@
 <?xml version="1.0"?>
 <interfaceDefinition>
-  #include <include/version/bgp-version.xml.i>
-  #include <include/version/broadcast-relay-version.xml.i>
-  #include <include/version/cluster-version.xml.i>
-  #include <include/version/config-management-version.xml.i>
-  #include <include/version/conntrack-sync-version.xml.i>
-  #include <include/version/conntrack-version.xml.i>
-  #include <include/version/container-version.xml.i>
-  #include <include/version/dhcp-relay-version.xml.i>
-  #include <include/version/dhcp-server-version.xml.i>
-  #include <include/version/dhcpv6-server-version.xml.i>
-  #include <include/version/dns-dynamic-version.xml.i>
-  #include <include/version/dns-forwarding-version.xml.i>
-  #include <include/version/firewall-version.xml.i>
-  #include <include/version/flow-accounting-version.xml.i>
-  #include <include/version/https-version.xml.i>
-  #include <include/version/interfaces-version.xml.i>
-  #include <include/version/ids-version.xml.i>
-  #include <include/version/ipoe-server-version.xml.i>
-  #include <include/version/ipsec-version.xml.i>
-  #include <include/version/openvpn-version.xml.i>
-  #include <include/version/isis-version.xml.i>
-  #include <include/version/l2tp-version.xml.i>
-  #include <include/version/lldp-version.xml.i>
-  #include <include/version/mdns-version.xml.i>
-  #include <include/version/monitoring-version.xml.i>
-  #include <include/version/nat66-version.xml.i>
-  #include <include/version/nat-version.xml.i>
-  #include <include/version/ntp-version.xml.i>
-  #include <include/version/openconnect-version.xml.i>
-  #include <include/version/ospf-version.xml.i>
-  #include <include/version/pim-version.xml.i>
-  #include <include/version/policy-version.xml.i>
-  #include <include/version/pppoe-server-version.xml.i>
-  #include <include/version/pptp-version.xml.i>
-  #include <include/version/qos-version.xml.i>
-  #include <include/version/quagga-version.xml.i>
-  #include <include/version/rip-version.xml.i>
-  #include <include/version/rpki-version.xml.i>
-  #include <include/version/salt-version.xml.i>
-  #include <include/version/snmp-version.xml.i>
-  #include <include/version/ssh-version.xml.i>
-  #include <include/version/sstp-version.xml.i>
-  #include <include/version/system-version.xml.i>
-  #include <include/version/vrf-version.xml.i>
-  #include <include/version/vrrp-version.xml.i>
-  #include <include/version/vyos-accel-ppp-version.xml.i>
-  #include <include/version/wanloadbalance-version.xml.i>
-  #include <include/version/webproxy-version.xml.i>
-  #include <include/version/reverseproxy-version.xml.i>
+  #include <include/version/*>
 </interfaceDefinition>
diff --git a/scripts/transclude-template b/scripts/transclude-template
index 5c6668a847..767583acd5 100755
--- a/scripts/transclude-template
+++ b/scripts/transclude-template
@@ -23,6 +23,7 @@
 import os
 import re
 import sys
+import glob
 
 regexp = re.compile(r'^ *#include <(.+)>$')
 
@@ -34,7 +35,9 @@ def parse_file(filename):
             if line:
                 result = regexp.match(line)
                 if result:
-                    lines += parse_file(os.path.join(directory, result.group(1)))
+                    res = os.path.join(directory, result.group(1))
+                    for g in sorted(glob.glob(res)):
+                        lines += parse_file(g)
                 else:
                     lines += line
             else: