コード例 #1
0
ファイル: load.py プロジェクト: jacopodl/Helix
def execute(helix, argv):
    if len(argv) <= 1:
        print("Usage:\n\tload [option][modname]\nOption:\n"
              "\t-r || --reload\tReload module.\n"
              "\t-l || --list\tList all module.\n"
              "See man load for more details!")
        return 0
    
    base = ArgsX.Base(len(argv), argv, 1)
    lopt = [ArgsX.LongOpt("reload", ArgsX.Options["req_arg"], "r"),
            ArgsX.LongOpt("list", ArgsX.Options["no_args"], "l")]
    while True:
        ret = ArgsX.argsx(base, "r+l", lopt, "-")
        if ret == ArgsX.Status["finish"]:
            break

        if ret == "r":
            pinfo("Reload " + argv[base.argptr] + "...")
            try:
                helix.Modules.reload(pypath(path_modules())+argv[base.argptr])
            except KeyError as e:
                perror(str(e) + " not present!")
            except ImportError:
                perror("The module " + argv[base.argptr] + " is no longer available!")
            break
        elif ret == "l":
            pinfo("Loading module list...")
            mdb = MDBmanager()
            inst = mdb.get_installed_modules()
            if not inst:
                perror("No module installed.", "\n")
            else:
                print("\nName:\n")
                for mod in inst:
                    print("[Module]: " + mod)
            print()
            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"]:
            try:
                helix.Modules.load(pypath(path_modules())+argv[base.aptr])
            except ImportError:
                perror("The module " + argv[base.argptr] + " was not found!")
            except OsNotSupported as e:
                perror(str(e))
            break
        base.aptr += 1
    return 0
コード例 #2
0
ファイル: unload.py プロジェクト: jacopodl/Helix
def execute(helix, argv):
    if len(argv) <= 1:
        print("Usage:\n\tunload [-a||--all] || [modname]\n"
              "Options:\n"
              "\t-a || --all\tUnload all module.\n"
              "See man unload for more details!")
        return 0

    base = ArgsX.Base(len(argv), argv, 1)
    lopt = [ArgsX.LongOpt("all", ArgsX.Options["no_args"], "a")]

    while True:
        ret = ArgsX.argsx(base, "a", lopt, "-")
        if ret == ArgsX.Status["finish"]:
            break

        if ret == "a":
            helix.Modules.unloadall()
            break
        elif ret == ArgsX.Status["badargs"]:
            perror("Bad Option!")
            break
        elif ret == ArgsX.Status["otherdata"]:
            try:
                helix.Modules.unload(pypath(path_modules())+argv[1])
            except KeyError:
                perror(argv[1] + " not present!")
            break
        base.aptr += 1
    return 0
コード例 #3
0
ファイル: BaseMod.py プロジェクト: jacopodl/Helix
 def dispatch(self, modname, helix, argv):
     """
     Runs the main method of the selected module.
     """
     try:
         mod = self.mod[pypath(path_base())+modname]
     except KeyError:
         raise ModuleNotFound
     mod.execute(helix, argv)
     return
コード例 #4
0
ファイル: BaseMod.py プロジェクト: jacopodl/Helix
 def __init__(self):
     super(BaseMod, self).__init__()
     self.author = tuple()
     for module in os.listdir(path_base()):
         if os.path.isfile(path_base() + module) and module != "__init__.py":
             self.load(pypath(path_base())+module.replace(".py", ""))
     # Authors
     auth = []
     for key in self.mod:
         try:
             amod = self.mod[key].__author__
             sauth = amod.split(",")
             for author in sauth:
                 if not (author in auth):
                     auth.append(author)
         except AttributeError:
             pass
     if auth:
         self.author = tuple(sorted(auth))
コード例 #5
0
ファイル: sw.py プロジェクト: jacopodl/Helix
def execute(helix, argv):
    if len(argv) <= 1:
        print("Usage:\n\tsw [-l||--list] || [modname]\n"
              "Options:\n"
              "\t-l || --list\tShow the loaded modules."
              "See man sw for more details!")
        return 0

    base = ArgsX.Base(len(argv), argv, 1)
    lopt = [ArgsX.LongOpt("list", ArgsX.Options["no_args"], "l")]
    while True:
        ret = ArgsX.argsx(base, "l", lopt, "-")
        if ret == ArgsX.Status["finish"]:
            break

        if ret == "l":
            print("\n[A]\t\tName:")
            activename = helix.Modules.getactivemodname()
            activename = activename and activename or str()
            for name in helix.Modules.getkeys():
                if activename == name:
                    print("[X]\t\t" + name)
                else:
                    print("[-]\t\t" + name)
            pinfo("Loaded modules: "+str(helix.Modules.getsize()), "\n")
            print()
            break
        elif ret == ArgsX.Status["badargs"]:
            perror("Bad Option!")
            break
        elif ret == ArgsX.Status["otherdata"]:
            try:
                helix.Modules.switch(pypath(path_modules())+argv[base.argptr])
            except KeyError:
                perror(argv[base.argptr] + " not present!")
            break
        base.aptr += 1
    return 0