|
1 | | -import sys |
| 1 | +import sysconfig |
2 | 2 | from pathlib import Path |
3 | 3 |
|
4 | | - |
5 | 4 | def load_filter_ansible(env): |
6 | 5 | from ansible.plugins.loader import filter_loader, test_loader |
7 | 6 |
|
8 | 7 | for path in [ |
9 | 8 | str(x.resolve()) |
10 | 9 | for x in Path( |
11 | | - f"{sys.base_prefix}/lib/python3.8/site-packages/ansible_collections/" |
12 | | - ).glob("**/plugins/filter") |
| 10 | + f"{sysconfig.get_path('purelib')}/ansible_collections/").glob( |
| 11 | + "**/plugins/filter") |
13 | 12 | if "tests" not in str(x) |
14 | 13 | ]: |
15 | 14 | filter_loader.add_directory(path) |
| 15 | + |
16 | 16 | for fp in filter_loader.all(): |
17 | | - for filter_name, filter in fp.filters().items(): |
18 | | - path_parts = fp._original_path.split("/") |
19 | | - if path_parts[-5:-3] == ["site-packages", "ansible"]: |
20 | | - env.filters[f"ansible.builtin.{filter_name}"] = filter |
21 | | - env.filters[filter_name] = filter |
22 | | - else: |
23 | | - site_packages = path_parts.index("site-packages") |
24 | | - if path_parts[site_packages + 2 : -3] == [ |
25 | | - "community", |
26 | | - "general", |
27 | | - ] or path_parts[site_packages + 2 : -3] == ["ansible", "netcommon"]: |
28 | | - env.filters[filter_name] = filter |
29 | | - filter_name = ".".join( |
30 | | - path_parts[site_packages + 2 : -3] + [filter_name] |
31 | | - ) |
| 17 | + filter_name = fp._load_name |
| 18 | + filter = fp.j2_function |
| 19 | + path_parts = fp._original_path.split("/") |
| 20 | + site_packages = path_parts.index("site-packages") |
| 21 | + |
| 22 | + if path_parts[site_packages : site_packages + 2] == [ |
| 23 | + "site-packages", |
| 24 | + "ansible", |
| 25 | + ]: |
| 26 | + env.filters[f"ansible.builtin.{filter_name}"] = filter |
| 27 | + env.filters[filter_name] = filter |
| 28 | + else: |
| 29 | + if path_parts[site_packages + 2 : -3] == [ |
| 30 | + "community", |
| 31 | + "general", |
| 32 | + ] or path_parts[site_packages + 2 : -3] == ["ansible", "netcommon"]: |
32 | 33 | env.filters[filter_name] = filter |
| 34 | + filter_name = ".".join( |
| 35 | + path_parts[site_packages + 2 : -3] + [filter_name] |
| 36 | + ) |
| 37 | + env.filters[filter_name] = filter |
33 | 38 |
|
34 | 39 | for fp in test_loader.all(): |
35 | | - env.tests.update(fp.tests()) |
| 40 | + env.tests.update({fp.ansible_name: fp._function}) |
36 | 41 |
|
37 | 42 |
|
38 | 43 | def load_filter_salt(env): |
|
0 commit comments