Skip to content

Commit 82bfa97

Browse files
Add --version to kup list (#104)
1 parent 5603adf commit 82bfa97

1 file changed

Lines changed: 15 additions & 5 deletions

File tree

src/kup/__main__.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,12 @@ def parse_package_metadata(
156156
return PackageMetadata(repo, rev, org, inputs)
157157

158158

159-
def get_package_metadata(package: GithubPackage) -> PackageMetadata:
160-
try:
159+
def get_package_metadata(package: Union[ConcretePackage, GithubPackage]) -> PackageMetadata:
160+
if type(package) == ConcretePackage:
161+
path, git_token_options = package.concrete_repo_path_with_access
162+
else:
161163
path, git_token_options = package.repo_path_with_access()
164+
try:
162165
result = nix(
163166
['flake', 'metadata', path, '--json'] + git_token_options, is_install=False, refresh=True, verbose=VERBOSE
164167
)
@@ -305,7 +308,12 @@ def highlight_row(condition: bool, xs: List[str]) -> List[str]:
305308
return xs
306309

307310

308-
def list_package(package_name: str, show_inputs: bool, show_status: bool) -> None:
311+
def list_package(
312+
package_name: str,
313+
show_inputs: bool,
314+
show_status: bool,
315+
version: Optional[str] = None,
316+
) -> None:
309317
reload_packages()
310318
if package_name != 'all':
311319
if package_name not in packages.keys():
@@ -314,7 +322,8 @@ def list_package(package_name: str, show_inputs: bool, show_status: bool) -> Non
314322
"[/]Use '[blue]kup list[/]' to see all the available packages."
315323
)
316324
return
317-
listed_package = packages[package_name]
325+
326+
listed_package = packages[package_name].concrete(version, []) if version else packages[package_name]
318327

319328
if show_inputs or show_status:
320329
inputs = get_package_metadata(listed_package)
@@ -864,6 +873,7 @@ def main() -> None:
864873
'list', help='show the active and installed K semantics', add_help=False, parents=[verbose_arg]
865874
)
866875
list.add_argument('package', nargs='?', default='all', type=str)
876+
list.add_argument('--version', type=str, help='print information about the given version of the package')
867877
list.add_argument('--inputs', action='store_true', help='show the input dependencies of the selected package')
868878
list.add_argument(
869879
'--status',
@@ -953,7 +963,7 @@ def main() -> None:
953963
package_name = PackageName.parse(args.package)
954964

955965
if args.command == 'list':
956-
list_package(package_name.base, args.inputs, args.status)
966+
list_package(package_name.base, args.inputs, args.status, args.version)
957967

958968
elif args.command == 'install':
959969
install_package(package_name, args.version, args.override)

0 commit comments

Comments
 (0)