Skip to content

Commit 8f091de

Browse files
committed
Merge branch 'fix/idf_size_help_v5.3' into 'release/v5.3'
fix: display correct help in the idf_size.py wrapper (v5.3) See merge request espressif/esp-idf!30661
2 parents bf415f5 + ae0eabe commit 8f091de

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

tools/idf_size.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,40 @@
11
#!/usr/bin/env python
22
#
3-
# SPDX-FileCopyrightText: 2017-2023 Espressif Systems (Shanghai) CO LTD
3+
# SPDX-FileCopyrightText: 2017-2024 Espressif Systems (Shanghai) CO LTD
44
#
55
# SPDX-License-Identifier: Apache-2.0
66
#
7-
87
import argparse
98
import os
109
import subprocess
1110
import sys
1211

1312
if __name__ == '__main__':
14-
parser = argparse.ArgumentParser()
13+
# Here the argparse is used only to "peek" into arguments if
14+
# legacy version is requested or if old json format is specified.
15+
# In these two cases the esp_idf_size legacy version is spawned.
16+
parser = argparse.ArgumentParser(exit_on_error=False, add_help=False)
1517
parser.add_argument('--format')
1618
parser.add_argument('-l', '--legacy', action='store_true', default=os.environ.get('ESP_IDF_SIZE_LEGACY', '0') == '1')
19+
20+
# The sys.argv is parsed with "exit_on_error", but the argparse.ArgumentError
21+
# exception should never occur, because unknown args should be put into
22+
# the rest variable, since the parse_known_args() method is used.
1723
args, rest = parser.parse_known_args()
1824

1925
if not args.legacy and args.format != 'json':
26+
# By default start the refactored version, unless legacy version is explicitly requested with
27+
# -l/--legacy option or if old json format is specified.
2028
try:
2129
import esp_idf_size.ng # noqa: F401
2230
except ImportError:
2331
print('warning: refactored esp-idf-size not installed, using legacy mode', file=sys.stderr)
2432
args.legacy = True
2533
else:
2634
os.environ['ESP_IDF_SIZE_NG'] = '1'
27-
28-
if args.legacy and args.format in ['json2', 'raw', 'tree']:
29-
sys.exit(f'Legacy esp-idf-size does not support {args.format} format')
35+
if not rest or '-h' in rest or '--help' in rest:
36+
print(('Note: legacy esp_idf_size version can be invoked by specifying the -l/--legacy '
37+
'option or by setting the ESP_IDF_SIZE_LEGACY environment variable.'))
3038

3139
if args.format is not None:
3240
rest = ['--format', args.format] + rest

0 commit comments

Comments
 (0)