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
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)
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
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