Skip to content
This repository was archived by the owner on Jan 23, 2026. It is now read-only.

Commit 2eb5315

Browse files
committed
Add more documentation.
1 parent 831608f commit 2eb5315

2 files changed

Lines changed: 60 additions & 22 deletions

File tree

  • packages/jumpstarter-cli-pkg/jumpstarter_cli_pkg/commands

packages/jumpstarter-cli-pkg/jumpstarter_cli_pkg/commands/list.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ def print_adapters(packages: V1Alpha1DriverPackageList, output: OutputType):
144144
@opt_output_all
145145
@handle_exceptions
146146
def list(output: OutputType, drivers: bool, driver_clients: bool, adapters: bool):
147-
"""List Jumpstarter packages"""
147+
"""List available Jumpstarter packages."""
148148
# Add validation to ensure only one flag is set
149149
if sum([drivers, driver_clients, adapters]) > 1:
150150
raise click.UsageError("Only one of --drivers, --driver-clients, or --adapters can be specified.")
Lines changed: 59 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,38 @@
11
import asyncclick as click
2-
from jumpstarter_cli_common import OutputType, opt_output_all
2+
from jumpstarter_cli_common import OutputMode, OutputType, opt_output_all
33
from jumpstarter_cli_common.exceptions import handle_exceptions
44
from jumpstarter_cli_pkg.repository import LocalDriverRepository
55

66

7+
def print_package_details(package: str, drivers: bool, driver_clients: bool, adapters: bool, output: OutputType):
8+
flag_sum = sum([drivers, driver_clients, adapters])
9+
if flag_sum == 0:
10+
click.echo("Name: " + package.name)
11+
click.echo("Version: " + package.version)
12+
click.echo("Summary: " + (package.summary if package.summary else ""))
13+
click.echo("Categories: " + ", ".join(package.categories))
14+
click.echo("License: " + (package.license if package.license else ""))
15+
16+
if flag_sum == 0 or drivers:
17+
click.echo("Drivers:")
18+
for driver in package.drivers.items:
19+
click.echo(f" {driver.name}:")
20+
click.echo(f" Name: {driver.name}")
21+
click.echo(f" Type: {driver.type}")
22+
if flag_sum == 0 or driver_clients:
23+
click.echo("Driver Clients:")
24+
for driver_client in package.driver_clients.items:
25+
click.echo(f" {driver_client.name}:")
26+
click.echo(f" Name: {driver_client.name}")
27+
click.echo(f" Type: {driver_client.type}")
28+
if flag_sum == 0 or adapters:
29+
click.echo("Adapters:")
30+
for adapter in package.adapters.items:
31+
click.echo(f" {adapter.name}:")
32+
click.echo(f" Name: {adapter.name}")
33+
click.echo(f" Type: {adapter.type}")
34+
35+
736
@click.command("show")
837
@click.argument("package")
938
@click.option("--drivers", is_flag=True, help="Print drivers only.")
@@ -12,25 +41,34 @@
1241
@opt_output_all
1342
@handle_exceptions
1443
def show(package: str, drivers: bool, driver_clients: bool, adapters: bool, output: OutputType):
44+
"""
45+
Show a Jumpstarter plugin package details.
46+
"""
47+
# Add validation to ensure only one flag is set
48+
if sum([drivers, driver_clients, adapters]) > 1:
49+
raise click.UsageError("Only one of --drivers, --driver-clients, or --adapters can be specified.")
50+
1551
local_repo = LocalDriverRepository.from_venv()
1652
local_package = local_repo.get_package(package)
17-
click.echo("Name: " + local_package.name)
18-
click.echo("Version: " + local_package.version)
19-
click.echo("Summary: " + (local_package.summary if local_package.summary else ""))
20-
click.echo("Categories: " + ", ".join(local_package.categories))
21-
click.echo("License: " + (local_package.license if local_package.license else ""))
22-
click.echo("Drivers:")
23-
for driver in local_package.drivers.items:
24-
click.echo(f" {driver.name}:")
25-
click.echo(f" Name: {driver.name}")
26-
click.echo(f" Type: {driver.type}")
27-
click.echo("Driver Clients:")
28-
for driver_client in local_package.driver_clients.items:
29-
click.echo(f" {driver_client.name}:")
30-
click.echo(f" Name: {driver_client.name}")
31-
click.echo(f" Type: {driver_client.type}")
32-
click.echo("Adapters:")
33-
for adapter in local_package.adapters.items:
34-
click.echo(f" {driver_client.name}:")
35-
click.echo(f" Name: {adapter.name}")
36-
click.echo(f" Type: {adapter.type}")
53+
54+
match output:
55+
case OutputMode.JSON:
56+
if drivers:
57+
click.echo(local_package.drivers.dump_json())
58+
elif driver_clients:
59+
click.echo(local_package.driver_clients.dump_json())
60+
elif adapters:
61+
click.echo(local_package.adapters.dump_json())
62+
else:
63+
click.echo(local_package.dump_json())
64+
case OutputMode.YAML:
65+
if drivers:
66+
click.echo(local_package.drivers.dump_yaml())
67+
elif driver_clients:
68+
click.echo(local_package.driver_clients.dump_yaml())
69+
elif adapters:
70+
click.echo(local_package.adapters.dump_yaml())
71+
else:
72+
click.echo(local_package.dump_yaml())
73+
case _:
74+
print_package_details(local_package, drivers, driver_clients, adapters, output)

0 commit comments

Comments
 (0)