Skip to content

Commit d5fa4f0

Browse files
author
codebot
committed
Update main
# Conflicts: # lib/ofh/transmitter/scoped_frame_buffer.h
2 parents 66713f2 + cf67414 commit d5fa4f0

File tree

302 files changed

+7089
-2779
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

302 files changed

+7089
-2779
lines changed

.gitlab/ci-shared/build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,4 +158,5 @@ variables:
158158
set -x
159159
ctest -j${KUBERNETES_CPU_REQUEST} --schedule-random --output-on-failure --output-junit xunit.xml $CTEST_ARGS
160160
{ set +x; } 2>/dev/null
161+
grep -l "ERROR SUMMARY: 0 errors" Testing/Temporary/MemoryChecker.*.log | xargs rm || true
161162
}

.gitlab/ci/builders/archlinux/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# the distribution.
77
#
88

9-
ARG VERSION=latest
9+
ARG VERSION=base-20250511.0.348143
1010
FROM archlinux:$VERSION
1111

1212
ADD install_dependencies.sh /usr/local/bin
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
#!/usr/bin/env python3
2+
#
3+
# Copyright 2013-2025 Software Radio Systems Limited
4+
#
5+
# By using this file, you agree to the terms and conditions set
6+
# forth in the LICENSE file which can be found at the top level of
7+
# the distribution.
8+
#
9+
10+
"""
11+
Traverse the help output of an application recursively for all subcommands
12+
"""
13+
14+
from argparse import ArgumentParser
15+
import subprocess
16+
import re
17+
18+
HELP_ARG = "--help"
19+
SUBCOMMANDS_KEYWORD = "Subcommands:"
20+
21+
re_parser = re.compile(r'\s+([^\s]+)\s+')
22+
23+
def _parse_subcommands(stdout):
24+
result = []
25+
26+
# find the subcommand section in the help output
27+
subcmd_section = stdout.split(SUBCOMMANDS_KEYWORD,1)
28+
29+
if len(subcmd_section) > 1:
30+
subcmd_lines = subcmd_section[1].strip("\n").splitlines()
31+
for line in subcmd_lines:
32+
# find the subcommand name in the first capture group
33+
m = re_parser.match(line)
34+
if m :
35+
subcmd = m.group(1)
36+
result.append(subcmd)
37+
else:
38+
print("Warning: No matching subcommand found in line:")
39+
print(f"> {line}")
40+
return result
41+
42+
def _format_output(output):
43+
# Format and fine-tune the help output, e.g. remove the startup banner
44+
lines = output.splitlines()
45+
for line in lines:
46+
# ignore startup banner
47+
if line.find("--==") != -1 and line.find("==--") != -1:
48+
continue
49+
print(line)
50+
51+
def _traverse_help(app, cur_subcmd, help_arg):
52+
cmd = [app] + cur_subcmd + [help_arg]
53+
result = subprocess.run(cmd, capture_output=True, text=True, check=True)
54+
stdout = result.stdout
55+
_format_output(stdout)
56+
subcmd_children = _parse_subcommands(stdout)
57+
for subcmd_child in subcmd_children:
58+
_traverse_help(app, cur_subcmd + [subcmd_child], help_arg)
59+
60+
def _main():
61+
parser = ArgumentParser()
62+
parser.add_argument("app", nargs=1)
63+
64+
args = parser.parse_args()
65+
66+
app = args.app[0]
67+
68+
_traverse_help(app, [], HELP_ARG)
69+
70+
71+
if __name__ == "__main__":
72+
_main()

0 commit comments

Comments
 (0)