|
1 | 1 | from .generation_utils.file_generator import FileGenerator |
2 | 2 | import argparse |
3 | | -import os |
| 3 | +import sys |
4 | 4 | from pathlib import Path |
5 | 5 |
|
6 | 6 |
|
7 | | -def parse_args(): |
| 7 | +def makeGenerateParser(add_help: bool = True): |
8 | 8 | parser = argparse.ArgumentParser( |
9 | | - description="Takes topology.yaml files as input and writes out needed files to start the precice." |
| 9 | + description="Takes topology.yaml files as input and writes out needed files to start the precice.", |
| 10 | + add_help=add_help, |
10 | 11 | ) |
11 | 12 | parser.add_argument( |
12 | 13 | "-f", |
@@ -35,29 +36,37 @@ def parse_args(): |
35 | 36 | default=True, |
36 | 37 | help="Whether to validate the input topology.yaml file against the preCICE topology schema.", |
37 | 38 | ) |
38 | | - return parser.parse_args() |
| 39 | + return parser |
39 | 40 |
|
40 | 41 |
|
41 | | -def main(): |
42 | | - args = parse_args() |
| 42 | +def runGenerate(ns): |
| 43 | + try: |
| 44 | + file_generator = FileGenerator(ns.input_file, ns.output_path) |
| 45 | + |
| 46 | + # Clear any previous log state |
| 47 | + file_generator.logger.clear_log_state() |
43 | 48 |
|
44 | | - file_generator = FileGenerator(args.input_file, args.output_path) |
| 49 | + # Generate precice-config.xml, README.md, clean.sh |
| 50 | + file_generator.generate_level_0() |
| 51 | + # Generate configuration for the solvers |
| 52 | + file_generator.generate_level_1() |
45 | 53 |
|
46 | | - # Clear any previous log state |
47 | | - file_generator.logger.clear_log_state() |
| 54 | + # Format the generated preCICE configuration |
| 55 | + file_generator.format_precice_config() |
48 | 56 |
|
49 | | - # Generate precice-config.xml, README.md, clean.sh |
50 | | - file_generator.generate_level_0() |
51 | | - # Generate configuration for the solvers |
52 | | - file_generator.generate_level_1() |
| 57 | + file_generator.handle_output(ns) |
53 | 58 |
|
54 | | - # Format the generated preCICE configuration |
55 | | - file_generator.format_precice_config() |
| 59 | + file_generator.validate_topology(ns) |
56 | 60 |
|
57 | | - file_generator.handle_output(args) |
| 61 | + return 0 |
| 62 | + except: |
| 63 | + return 1 |
58 | 64 |
|
59 | | - file_generator.validate_topology(args) |
| 65 | + |
| 66 | +def main(): |
| 67 | + args = makeGenerateParser().parse_args() |
| 68 | + return runGenerate(args) |
60 | 69 |
|
61 | 70 |
|
62 | 71 | if __name__ == "__main__": |
63 | | - main() |
| 72 | + sys.exit(main()) |
0 commit comments