Beispiel #1
0
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