|
52 | 52 | } |
53 | 53 |
|
54 | 54 |
|
| 55 | +OK = '\u2713' |
| 56 | +NOK = '\u2717' |
| 57 | + |
| 58 | + |
55 | 59 |
|
56 | 60 | class PrettyReport: |
57 | 61 | ANSI_RE = re.compile(r""" |
@@ -311,10 +315,14 @@ class TextInfoOutput(InfoOutputBase): |
311 | 315 | def protocol(cls) -> str: |
312 | 316 | return "text" |
313 | 317 |
|
314 | | - def output_info_data(self, data): |
315 | | - OK = '\u2713' |
316 | | - NOK = '\u2717' |
| 318 | + def get_feature_status(self, fmt, name, status): |
| 319 | + enabled = status.get("enabled", True) |
| 320 | + mark = OK if enabled else NOK |
| 321 | + description = status.get("description", "Description N/A") |
| 322 | + s = {"fg": ("bright_green" if enabled else "bright_red")} |
| 323 | + return style(fmt.format(mark=mark, status=status, name=name, enabled=enabled, description=description), **s) |
317 | 324 |
|
| 325 | + def output_info_data(self, data): |
318 | 326 | out = PrettyReport() |
319 | 327 |
|
320 | 328 | # Left hand side of the table contains logo and basic project information |
@@ -343,22 +351,15 @@ def output_info_data(self, data): |
343 | 351 | rhs_lines.append("Installed analyzers:") |
344 | 352 |
|
345 | 353 | for name, i in data["analyzers"].items(): |
346 | | - if i["enabled"]: |
347 | | - mark = OK |
348 | | - s = {"fg": "bright_green"} |
349 | | - else: |
350 | | - mark = NOK |
351 | | - s = {"fg": "bright_red"} |
| 354 | + rhs_lines.append(self.get_feature_status(fmt=" {mark} {name}: {description}", name=name, status=i)) |
352 | 355 |
|
353 | | - rhs_lines.append(style(f" {mark} {name}: {i['description']}", **s)) |
| 356 | + rhs_lines.append("Integrations:") |
| 357 | + for name, i in data["integrations"].items(): |
| 358 | + rhs_lines.append(self.get_feature_status(fmt=" {mark} {name}: {description}", name=name, status=i)) |
354 | 359 |
|
355 | 360 | rhs_lines.append("Installed URI handlers:") |
356 | 361 | for name, i in data["uri_handlers"].items(): |
357 | | - enabled = i.get("enabled", True) |
358 | | - mark = OK if enabled else NOK |
359 | | - s = {"fg": ("bright_green" if enabled else "bright_red") } |
360 | | - |
361 | | - rhs_lines.append(style(f" {mark} `{name}://` - {i.get('description', 'Description N/A')}", **s)) |
| 362 | + rhs_lines.append(self.get_feature_status(fmt=" {mark} `{name}://` - {description}", name=name, status=i)) |
362 | 363 |
|
363 | 364 | rhs_size = max(len(x) for x in rhs_lines) |
364 | 365 |
|
|
0 commit comments