in scripts/rulekey_diag2.py [0:0]
def main():
print("RuleKey Diagnostics script v0.1")
d = Diag()
args = parse_args()
if (args.graph or args.log_folder) is not None:
d.load_graph(args.graph or args.log_folder)
if (args.keys or args.log_folder) is not None:
d.load_keys(args.keys or args.log_folder)
if args.ref_keys is not None:
d.load_keys_ref(args.ref_keys)
bstk = []
sort_col_id = 4
cacheable_only = True
while True:
try:
print()
parts = raw_input("> ").strip().split(" ")
except EOFError:
break
try:
cmd = parts[0]
if cmd == "q" or cmd == "quit":
break
if cmd == "h" or cmd == "help":
print_help()
elif cmd == "lg" or cmd == "load_graph":
path = parts[1]
d.load_graph(path)
elif cmd == "r" or cmd == "roots":
bstk.append(d.graph.id_roots)
print_deps(d.graph, bstk[-1], sort_col_id, cacheable_only)
elif cmd == "a" or cmd == "all":
bstk.append(d.graph.id_all)
print_deps(d.graph, bstk[-1], sort_col_id, cacheable_only)
elif cmd == "c" or cmd == "cacheable_only":
cacheable_only = not cacheable_only
print("cacheable_only: %s" % cacheable_only)
elif cmd == "d" or cmd == "deps":
bstk.append(int(parts[1]))
print_deps(d.graph, bstk[-1], sort_col_id, cacheable_only)
elif cmd == "rd" or cmd == "parents":
bstk.append(int(parts[1]))
print_deps(d.graph, bstk[-1], sort_col_id, cacheable_only, True)
elif cmd == "b" or cmd == "back":
if len(bstk) > 1:
bstk.pop()
print_deps(d.graph, bstk[-1], sort_col_id, cacheable_only)
elif cmd == "s" or cmd == "sort":
sort_col_id = int(parts[1])
print_deps(d.graph, bstk[-1], sort_col_id, cacheable_only)
elif cmd == "p" or cmd == "print":
u = int(parts[1])
print_node(d.graph, u)
elif cmd == "ft" or cmd == "find_target":
pattern = parts[1]
for u in d.find_targets(pattern):
print(u, d.graph.nodes[u].target)
elif cmd == "lk" or cmd == "load_keys":
path = parts[1]
d.load_keys(path)
elif cmd == "lkr" or cmd == "load_keys_ref":
path = parts[1]
d.load_keys_ref(path)
elif cmd == "fk" or cmd == "find_keys":
criteria = zip(*[iter(parts[1:])] * 2)
for key in find_keys(d.keys, criteria):
print(key)
elif cmd == "fkr" or cmd == "find_keys_ref":
criteria = zip(*[iter(parts[1:])] * 2)
for key in find_keys(d.keys_ref, criteria):
print(key)
elif cmd == "pk" or cmd == "print_key":
rulekey_hash = parts[1]
print_rulekey(d.keys.get(rulekey_hash, []))
elif cmd == "pkr" or cmd == "print_key_ref":
rulekey_hash = parts[1]
print_rulekey(d.keys_ref.get(rulekey_hash, []))
elif cmd == "pt" or cmd == "print_targets":
d.print_targets_intersection(True, cacheable_only)
elif cmd == "pta" or cmd == "print_targets_all":
d.print_targets_intersection(False, cacheable_only)
elif cmd == "dt" or cmd == "diff_target":
try:
d.diff_keys_for_target(d.graph.nodes[int(parts[1])].target)
except ValueError:
d.diff_keys_for_target(parts[1])
elif cmd == "gv" or cmd == "save_graphviz":
path = parts[1]
d.save_graphviz(path)
else:
eprint("unknown command: ", parts)
except Exception:
eprint(
"Something went wrong. Make sure you loaded all the required data and\n"
"specified all the required arguments necessary for performing the command."
)
eprint(traceback.format_exc())