ref: printFlat + printTree
This commit is contained in:
58
brew.py
58
brew.py
@@ -210,21 +210,15 @@ def cli_deps(args: ArgParams) -> None:
|
|||||||
depTree = Cellar.getDependencyTree()
|
depTree = Cellar.getDependencyTree()
|
||||||
depTree.forward.assertInstalled(args.packages)
|
depTree.forward.assertInstalled(args.packages)
|
||||||
|
|
||||||
|
choice = args.packages or sorted(depTree.forward)
|
||||||
|
|
||||||
if args.dot:
|
if args.dot:
|
||||||
depTree.forward.dotGraph(args.packages or depTree.reverse.directEnd())
|
depTree.forward.dotGraph(args.packages or depTree.reverse.directEnd())
|
||||||
return
|
elif args.tree:
|
||||||
|
depTree.forward.printTree(choice, depth=args.depth)
|
||||||
for pkg in args.packages or sorted(depTree.forward):
|
else:
|
||||||
if args.tree:
|
depTree.forward.printFlat(
|
||||||
depTree.forward.print(pkg, depth=args.depth)
|
choice, ' => ', leaves=args.leaves, direct=args.depth == 1)
|
||||||
else:
|
|
||||||
if args.leaves:
|
|
||||||
flat = depTree.forward.getLeaves(pkg)
|
|
||||||
elif args.depth == 1:
|
|
||||||
flat = depTree.forward.direct[pkg]
|
|
||||||
else:
|
|
||||||
flat = depTree.forward.getAll(pkg)
|
|
||||||
Log.main(pkg, '=>', ', '.join(sorted(flat)))
|
|
||||||
|
|
||||||
|
|
||||||
# https://docs.brew.sh/Manpage#upgrade-options-installed_formulainstalled_cask-
|
# https://docs.brew.sh/Manpage#upgrade-options-installed_formulainstalled_cask-
|
||||||
@@ -245,19 +239,11 @@ def cli_uses(args: ArgParams) -> None:
|
|||||||
if args.dot:
|
if args.dot:
|
||||||
depTree.reverse.dotGraph(
|
depTree.reverse.dotGraph(
|
||||||
choice or depTree.forward.directEnd(), reverse=True)
|
choice or depTree.forward.directEnd(), reverse=True)
|
||||||
return
|
elif args.tree:
|
||||||
|
depTree.reverse.printTree(choice, depth=args.depth)
|
||||||
for pkg in choice or sorted(depTree.reverse):
|
else:
|
||||||
if args.tree:
|
depTree.reverse.printFlat(
|
||||||
depTree.reverse.print(pkg, depth=args.depth)
|
choice, ' := ', leaves=args.leaves, direct=args.depth == 1)
|
||||||
else:
|
|
||||||
if args.leaves:
|
|
||||||
flat = depTree.reverse.getLeaves(pkg)
|
|
||||||
elif args.depth == 1:
|
|
||||||
flat = depTree.reverse.direct[pkg]
|
|
||||||
else:
|
|
||||||
flat = depTree.reverse.getAll(pkg)
|
|
||||||
Log.main(pkg, ':=', ', '.join(sorted(flat)))
|
|
||||||
|
|
||||||
|
|
||||||
# https://docs.brew.sh/Manpage#leaves---installed-on-request---installed-as-dependency
|
# https://docs.brew.sh/Manpage#leaves---installed-on-request---installed-as-dependency
|
||||||
@@ -922,10 +908,24 @@ class TreeDict:
|
|||||||
Log.error('unknown package:', ', '.join(unknownKeys))
|
Log.error('unknown package:', ', '.join(unknownKeys))
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
def print(
|
def printFlat(
|
||||||
self, key: str, *, depth: int = 0, indent: int = 2, prefix: str = ''
|
self, keys: Keys, separator: str,
|
||||||
|
*, leaves: bool = False, direct: bool = False,
|
||||||
) -> None:
|
) -> None:
|
||||||
queue = [([], key)] # type: list[tuple[list[bool], str]]
|
''' format: "{pkg}{sep}{deps}". Priority: leaves, direct, all '''
|
||||||
|
for pkg in keys:
|
||||||
|
if leaves:
|
||||||
|
flat = self.getLeaves(pkg)
|
||||||
|
elif direct:
|
||||||
|
flat = self.direct[pkg]
|
||||||
|
else:
|
||||||
|
flat = self.getAll(pkg)
|
||||||
|
print(pkg + separator + ', '.join(sorted(flat)))
|
||||||
|
|
||||||
|
def printTree(
|
||||||
|
self, keys: Keys, *, depth: int = 0, indent: int = 2, prefix: str = ''
|
||||||
|
) -> None:
|
||||||
|
queue = [([], key) for key in keys] # type:list[tuple[list[bool],str]]
|
||||||
|
|
||||||
while queue:
|
while queue:
|
||||||
lvl, key = queue.pop(0)
|
lvl, key = queue.pop(0)
|
||||||
|
|||||||
Reference in New Issue
Block a user