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
Beispiel #2
0
def moduleUpdate(helix):
    mdb = MDBmanager()
    list = mdb.get_installed_pack()
    if len(list):
        f = sqlite3.connect(mod)
        for inst in list:
            result = f.execute("SELECT name FROM mod_list WHERE name=\"" + inst + "\"").fetchone()
            if len(result) > 0:
                moduleDownload(helix, inst)
            else:
                pwarning("Module " + inst + " not present on the repository.", "", helix.eventC)
        f.close()
    else:
        pwarning("No modules installed, nothing to update.", "", helix.eventC)
Beispiel #3
0
def moduleDownload(helix, name):
    f = sqlite3.connect(list)
    for link in f.execute("SELECT link FROM link_list").fetchall():
        link = link[0]
        try:
            urllib.request.urlretrieve(link + "//" + name + ".zip", dir_temp + name + ".zip")
            psuccess("Module downloaded and saved correctly!", "", helix.eventC)
            mdb = MDBmanager()
            mdb.install(dir_temp + name + ".zip")
            f.close()
            return 0
        except urllib.request.URLError:
            perror("Module not found on the server: " + link, "", helix.eventC)
    f.close()
    return -1
Beispiel #4
0
def execute(helix, argv):
    if len(argv) <= 1:
        __usage()
        return 0

    base = ArgsX.Base(len(argv), argv, 1)
    lopt = [ArgsX.LongOpt("remove", ArgsX.Options["req_arg"], "r"),
            ArgsX.LongOpt("list", ArgsX.Options["no_args"], "l"),
            ArgsX.LongOpt("info", ArgsX.Options["req_arg"], "i"),
            ArgsX.LongOpt("clear", ArgsX.Options["no_args"], None)]
    mdbman = MDBmanager()
    while True:
        ret = ArgsX.argsx(base, "r+li+", lopt, "-")
        if ret == ArgsX.Status["finish"]:
            break

        if ret == "r":
            try:
                mdbman.uninstall(argv[base.argptr])
            except DbKeyError:
                perror("No package with the name %s" % argv[base.aptr])
            break
        elif ret == "l":
            _list = mdbman.get_installed_pack()
            if not _list:
                pinfo("Empty, no package installed!")
            else:
                print()
                for pack in _list:
                    print("[Package]:\t"+pack)
                print()
            break
        elif ret == "i":
            try:
                print("\nAuthor: %s" % mdbman.get_pack_author(argv[base.aptr]))
                print("About: %s" % mdbman.get_pack_about(argv[base.aptr]))
                print("Version: %f" % mdbman.get_pack_version(argv[base.aptr]))
                print("Modules:")
                modules = mdbman.get_module_from_pack_name(argv[base.aptr])
                for module in modules:
                    print("*\t%s" % module)
                print("\nBase:")
                bases = mdbman.get_base_from_pack_name(argv[base.aptr])
                for base in bases:
                    print("*\t%s" % base)
                print("\nLib:")
                libs = mdbman.get_lib_from_pack_name(argv[base.aptr])
                for lib in libs:
                    print("*\t%s" % lib)
                print("\nMan pages:")
                manps = mdbman.get_manp_from_pack_name(argv[base.aptr])
                for manp in manps:
                    print("*\t%s" % manp)
                print()
            except DbKeyError:
                perror("The package %s not exists" % argv[base.aptr])
        elif ret == ArgsX.Status["longopt"]:
            if lopt[base.laptr].name == "clear":
                sure = input("Initialize ? Are you sure(y/n)?")
                if sure == "y":
                    pwarning("Irreversible operation in progress...")
                    _list = mdbman.get_installed_pack()
                    for pack in _list:
                        print("\n%s:" % pack.upper())
                        mdbman.uninstall(pack)
                    psuccess("Operation terminated!", "\n")
                else:
                    pinfo("Operation canceled!")
        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"]:
            try:
                mdbman.install(argv[base.argptr])
            except FileNotFoundError:
                perror(argv[base.argptr] + " not found! Process Aborted!")
            break
        base.aptr += 1
    return 0