def execute(helix, argv): if len(argv) <= 1: __usage() return 0 base = ArgsX.Base(len(argv), argv, 1) lopt = [ArgsX.LongOpt("show", ArgsX.Options["no_args"], "s")] mdb = MDBmanager() while True: ret = ArgsX.argsx(base, "sp+m+", lopt, "-") if ret == ArgsX.Status["finish"]: break if ret == "s": data = mdb.get_tag() if not data: pwarning("No tags!") else: print() for tag in data: print("[tag]:\t"+tag) print() break elif ret == "p": data = mdb.get_pack_name_from_module(argv[base.aptr]) if data is None: pwarning("The module '%s' does not exist!" % argv[base.aptr]) else: print("The module "+argv[base.aptr]+" belongs to the package: "+data) break elif ret == "m": try: data = mdb.get_module_from_pack_name(argv[base.aptr]) print("\nThe package '%s' contains the following modules:" % argv[base.aptr]) for mod in data: print("*\t"+mod) print() except DbKeyError: pwarning("The package '%s' does not exist!" % argv[base.aptr]) break elif ret == ArgsX.Status["lowarg"]: print("Options: " + argv[base.aptr - 1] + " required an argument") break elif ret == ArgsX.Status["badargs"]: perror("Bad Option!") break elif ret == ArgsX.Status["otherdata"]: data = mdb.search(argv[base.aptr]) if not data: pinfo("No matches found!") else: print("\nTag matched to:") for mod in data: print("[Module]:\t"+mod) print() break base.aptr += 1 return 0