ref: assertInstalled
This commit is contained in:
22
brew.py
22
brew.py
@@ -208,9 +208,7 @@ def cli_list(args: ArgParams) -> None:
|
|||||||
def cli_deps(args: ArgParams) -> None:
|
def cli_deps(args: ArgParams) -> None:
|
||||||
''' Show dependencies for package. '''
|
''' Show dependencies for package. '''
|
||||||
depTree = Cellar.getDependencyTree()
|
depTree = Cellar.getDependencyTree()
|
||||||
if wrongPkg := depTree.forward.missing(args.packages):
|
depTree.forward.assertInstalled(args.packages)
|
||||||
Log.error('unknown package:', ', '.join(wrongPkg))
|
|
||||||
return
|
|
||||||
|
|
||||||
if args.dot:
|
if args.dot:
|
||||||
depTree.forward.dotGraph(args.packages or depTree.reverse.directEnd())
|
depTree.forward.dotGraph(args.packages or depTree.reverse.directEnd())
|
||||||
@@ -233,9 +231,7 @@ def cli_deps(args: ArgParams) -> None:
|
|||||||
def cli_uses(args: ArgParams) -> None:
|
def cli_uses(args: ArgParams) -> None:
|
||||||
''' Show dependents of package (reverse dependencies). '''
|
''' Show dependents of package (reverse dependencies). '''
|
||||||
depTree = Cellar.getDependencyTree()
|
depTree = Cellar.getDependencyTree()
|
||||||
if wrongPkg := depTree.reverse.missing(args.packages):
|
depTree.reverse.assertInstalled(args.packages)
|
||||||
Log.error('unknown package:', ', '.join(wrongPkg))
|
|
||||||
return
|
|
||||||
|
|
||||||
if args.missing:
|
if args.missing:
|
||||||
choice = sorted(set(depTree.reverse).difference(depTree.forward))
|
choice = sorted(set(depTree.reverse).difference(depTree.forward))
|
||||||
@@ -280,9 +276,7 @@ def cli_missing(args: ArgParams) -> None:
|
|||||||
Will exit with a non-zero status if any are found to be missing.
|
Will exit with a non-zero status if any are found to be missing.
|
||||||
'''
|
'''
|
||||||
depTree = Cellar.getDependencyTree()
|
depTree = Cellar.getDependencyTree()
|
||||||
if wrongPkg := depTree.reverse.missing(args.packages):
|
depTree.reverse.assertInstalled(args.packages)
|
||||||
Log.error('unknown package:', ', '.join(wrongPkg))
|
|
||||||
return
|
|
||||||
|
|
||||||
if args.packages:
|
if args.packages:
|
||||||
installed = depTree.forward.unionAll(args.packages, inclInput=False)
|
installed = depTree.forward.unionAll(args.packages, inclInput=False)
|
||||||
@@ -377,9 +371,7 @@ def cli_install(args: ArgParams) -> None:
|
|||||||
def cli_uninstall(args: ArgParams) -> None:
|
def cli_uninstall(args: ArgParams) -> None:
|
||||||
''' Remove / uninstall a package. '''
|
''' Remove / uninstall a package. '''
|
||||||
depTree = Cellar.getDependencyTree()
|
depTree = Cellar.getDependencyTree()
|
||||||
if wrongPkg := depTree.forward.missing(args.packages + args.ignore):
|
depTree.forward.assertInstalled(args.packages + args.ignore)
|
||||||
Log.error('unknown package:', ', '.join(wrongPkg))
|
|
||||||
exit(1)
|
|
||||||
|
|
||||||
recipe = depTree.collectUninstall(
|
recipe = depTree.collectUninstall(
|
||||||
args.packages, args.ignore, ignoreDependencies=args.no_dependencies)
|
args.packages, args.ignore, ignoreDependencies=args.no_dependencies)
|
||||||
@@ -924,6 +916,12 @@ class TreeDict:
|
|||||||
''' List of keys with with direct dead-ends '''
|
''' List of keys with with direct dead-ends '''
|
||||||
return [key for key, deps in self.direct.items() if not deps]
|
return [key for key, deps in self.direct.items() if not deps]
|
||||||
|
|
||||||
|
def assertInstalled(self, keys: Keys) -> None:
|
||||||
|
''' Print any `.missing(keys)` and exit with status code 1 '''
|
||||||
|
if unknownKeys := self.missing(keys):
|
||||||
|
Log.error('unknown package:', ', '.join(unknownKeys))
|
||||||
|
exit(1)
|
||||||
|
|
||||||
def print(
|
def print(
|
||||||
self, key: str, *, depth: int = 0, indent: int = 2, prefix: str = ''
|
self, key: str, *, depth: int = 0, indent: int = 2, prefix: str = ''
|
||||||
) -> None:
|
) -> None:
|
||||||
|
|||||||
Reference in New Issue
Block a user