|
5 | 5 | import subprocess
|
6 | 6 | import shlex
|
7 | 7 | import os
|
| 8 | +import argparse |
8 | 9 |
|
9 | 10 | from .base_component import generate_class_file
|
10 | 11 | from .base_component import generate_imports
|
11 | 12 | from .base_component import generate_classes_files
|
12 | 13 |
|
13 | 14 |
|
| 15 | +class _CombinedFormatter(argparse.ArgumentDefaultsHelpFormatter, |
| 16 | + argparse.RawDescriptionHelpFormatter): |
| 17 | + pass |
| 18 | + |
| 19 | + |
14 | 20 | # pylint: disable=too-many-locals
|
15 | 21 | def generate_components(component_src, project_shortname):
|
16 | 22 | is_windows = sys.platform == 'win32'
|
@@ -57,17 +63,20 @@ def generate_components(component_src, project_shortname):
|
57 | 63 |
|
58 | 64 |
|
59 | 65 | def cli():
|
60 |
| - if len(sys.argv) != 3: |
61 |
| - print( |
62 |
| - 'Invalid number of arguments' |
63 |
| - ' expected 2 but got {}\n\n' |
64 |
| - 'Arguments: src project_shortname'.format(len(sys.argv) - 1), |
65 |
| - file=sys.stderr |
66 |
| - ) |
67 |
| - sys.exit(1) |
68 |
| - # pylint: disable=unbalanced-tuple-unpacking |
69 |
| - src, project_shortname = sys.argv[1:] |
70 |
| - generate_components(src, project_shortname) |
| 66 | + parser = argparse.ArgumentParser( |
| 67 | + prog='dash-generate-components', |
| 68 | + formatter_class=_CombinedFormatter, |
| 69 | + description='Generate dash components by extracting the metadata ' |
| 70 | + 'using react-docgen. Then map the metadata to python classes.' |
| 71 | + ) |
| 72 | + parser.add_argument('src', help='React components source directory.') |
| 73 | + parser.add_argument( |
| 74 | + 'project_shortname', |
| 75 | + help='Name of the project to export the classes files.' |
| 76 | + ) |
| 77 | + |
| 78 | + args = parser.parse_args() |
| 79 | + generate_components(args.src, args.project_shortname) |
71 | 80 |
|
72 | 81 |
|
73 | 82 | if __name__ == '__main__':
|
|
0 commit comments