def treestatus(ui, *trees, **opts): """Show the status of the Mozilla repositories. If trees are open, it is OK to land code on them. If trees require approval, you'll need to obtain approval from release management to land changes. If trees are closed, you shouldn't push unless you are fixing the reason the tree is closed. """ from mozautomation.treestatus import TreeStatusClient client = TreeStatusClient() status = client.all() trees = resolve_trees_to_official(trees) if trees: for k in set(status.keys()) - set(trees): del status[k] if not status: raise util.Abort('No status info found.') longest = max(len(s) for s in status) for tree in sorted(status): s = status[tree] if s.status == 'closed': ui.write('%s: %s (%s)\n' % (tree.rjust(longest), s.status, s.reason)) else: ui.write('%s: %s\n' % (tree.rjust(longest), s.status))
def treestatus(ui, *trees, **opts): """Show the status of the Mozilla repositories. If trees are open, it is OK to land code on them. If trees require approval, you'll need to obtain approval from release management to land changes. If trees are closed, you shouldn't push unless you are fixing the reason the tree is closed. """ from mozautomation.treestatus import TreeStatusClient client = TreeStatusClient() status = client.all() trees = resolve_trees_to_official(trees) if trees: irrelevant = [k for k in status if k not in trees] for k in irrelevant: del status[k] longest = max(len(s) for s in status) for tree in sorted(status): s = status[tree] if s.status == 'closed': ui.write('%s: %s (%s)\n' % (tree.rjust(longest), s.status, s.reason)) else: ui.write('%s: %s\n' % (tree.rjust(longest), s.status))