|
2 | 2 | from collections import OrderedDict |
3 | 3 |
|
4 | 4 | from cfbs.module import Module |
5 | | -from cfbs.utils import get_or_read_json, user_error, get_json |
| 5 | +from cfbs.utils import FetchError, get_or_read_json, user_error, get_json |
6 | 6 | from cfbs.internal_file_management import local_module_name |
7 | 7 |
|
8 | 8 | _DEFAULT_INDEX = ( |
@@ -87,7 +87,13 @@ def _expand_index(self): |
87 | 87 |
|
88 | 88 | assert type(index) is str |
89 | 89 |
|
90 | | - self._data = get_or_read_json(index) |
| 90 | + try: |
| 91 | + self._data = get_or_read_json(index) |
| 92 | + except FetchError as e: |
| 93 | + user_error( |
| 94 | + "Downloading index '%s' failed - check your Wi-Fi / network settings." |
| 95 | + % index |
| 96 | + ) |
91 | 97 |
|
92 | 98 | if not self._data: |
93 | 99 | sys.exit("Could not download or find module index") |
@@ -121,7 +127,13 @@ def exists(self, module): |
121 | 127 | return True |
122 | 128 | if not version: |
123 | 129 | return name in self |
124 | | - versions = get_json(_VERSION_INDEX) |
| 130 | + try: |
| 131 | + versions = get_json(_VERSION_INDEX) |
| 132 | + except FetchError as e: |
| 133 | + user_error( |
| 134 | + "Downloading CFEngine Build Module Index failed - check your Wi-Fi / network settings." |
| 135 | + ) |
| 136 | + |
125 | 137 | return name in versions and version in versions[name] |
126 | 138 |
|
127 | 139 | def check_existence(self, modules: list): |
@@ -162,7 +174,12 @@ def get_module_object(self, module, added_by=None): |
162 | 174 | else: |
163 | 175 | object = self[name] |
164 | 176 | if version: |
165 | | - versions = get_json(_VERSION_INDEX) |
| 177 | + try: |
| 178 | + versions = get_json(_VERSION_INDEX) |
| 179 | + except FetchError as e: |
| 180 | + user_error( |
| 181 | + "Downloading CFEngine Build Module Index failed - check your Wi-Fi / network settings." |
| 182 | + ) |
166 | 183 | new_values = versions[name][version] |
167 | 184 | specifics = { |
168 | 185 | k: v for (k, v) in new_values.items() if k in Module.attributes() |
|
0 commit comments