|
20 | 20 | # URL with uploaded docs/build/html content |
21 | 21 | DOCS_URL = "https://scalecomputing.github.io/HyperCoreAnsibleCollection" |
22 | 22 | FQCN = "scale_computing.hypercore" |
| 23 | +README_FILE = "README.md" |
23 | 24 |
|
24 | 25 |
|
25 | 26 | def list_plugins(module_type): |
@@ -93,23 +94,37 @@ def list_roles(): |
93 | 94 | return fragment |
94 | 95 |
|
95 | 96 |
|
96 | | -def print_fragment(fragment, fragment_name): |
97 | | - print(f"<!--start {fragment_name} list-->") |
98 | | - print(f"<!-- generated by {__file__.strip(os.getcwd()) + 'py'} -->") |
99 | | - print(f"| {fragment_name} | Description |") |
100 | | - print("| --- | --- |") |
101 | | - print(fragment.rstrip("\n")) |
102 | | - print(f"<!--end {fragment_name} list-->") |
| 97 | +def update_fragment(fragment, fragment_name): |
| 98 | + fragment_no_newline = fragment.rstrip("\n") |
| 99 | + header0 = f"<!--start {fragment_name} list-->" |
| 100 | + header1 = f"<!--end {fragment_name} list-->" |
| 101 | + full_fragment = f"""{header0} |
| 102 | +<!-- generated by {__file__.strip(os.getcwd()) + 'py'} --> |
| 103 | +| {fragment_name} | Description | |
| 104 | +| --- | --- | |
| 105 | +{fragment_no_newline} |
| 106 | +{header1}""" |
| 107 | + # print(full_fragment) |
| 108 | + with open(README_FILE, "r") as ff: |
| 109 | + content = ff.read() |
| 110 | + pos0 = content.find(header0) |
| 111 | + pos1 = content.find(header1) + len(header1) |
| 112 | + assert pos0 >= 0 |
| 113 | + assert pos1 >= 0 |
| 114 | + new_content = content[:pos0] + full_fragment + content[pos1:] |
| 115 | + with open(README_FILE, "w") as ff: |
| 116 | + ff.write(new_content) |
| 117 | + logger.info("Fragment '%s' written to file", fragment_name) |
103 | 118 |
|
104 | 119 |
|
105 | 120 | def main(): |
106 | 121 | modules_fragment = list_plugins("module") |
107 | 122 | inventories_fragment = list_plugins("inventory") |
108 | 123 | roles_fragment = list_roles() |
109 | 124 |
|
110 | | - print_fragment(inventories_fragment, "Inventory plugin name") |
111 | | - print_fragment(modules_fragment, "Module name") |
112 | | - print_fragment(roles_fragment, "Role name") |
| 125 | + update_fragment(inventories_fragment, "Inventory plugin name") |
| 126 | + update_fragment(modules_fragment, "Module name") |
| 127 | + update_fragment(roles_fragment, "Role name") |
113 | 128 |
|
114 | 129 |
|
115 | 130 | if __name__ == "__main__": |
|
0 commit comments