diff options
Diffstat (limited to 'uselect.py')
-rwxr-xr-x | uselect.py | 54 |
1 files changed, 30 insertions, 24 deletions
@@ -12,38 +12,43 @@ import stat import string import traceback -from umodule import Module -from uio import PrintSystem -from uio import FileSystem - +from umodule import * +from uio import * + verbose = False version = '0.2' modules_dir = '/usr/share/uselect/modules/' + class UniversalSelectTool: - printsystem = PrintSystem() - filesystem = FileSystem() - def __init__(self): + return def get_modules(self): - list = self.filesystem.list_dir(modules_dir) self.modules = [] - for file in list: - match = re.match('(.*).uselect', file) + for module in filesystem.list_dir(modules_dir): + if re.match('__init__.py$', module): + continue + match = re.match('(.*).py$', module) if match: - self.modules.append(Module(match.group(1), self.filesystem)) + import modules + modname = match.group(1) + modpath = 'modules.'+ modname + __import__(modpath) + module = eval(modpath + '.module') + self.modules.append(module) + def get_module(self, name): - if not os.path.exists(modules_dir + name + '.uselect'): - raise Exception('Module ' + name + ' not found!') - return - else: - module = Module(name, self.filesystem) - return module + import modules + modname = name + modpath = 'modules.'+ modname + __import__(modpath) + module = eval(modpath + '.module') + return module def parse_argv(self, argv): global profile, verbose, version @@ -51,17 +56,17 @@ class UniversalSelectTool: modules = None action = None args = None - self.printsystem.use_colors(True) + printsystem.use_colors(True) for arg in argv: if arg == '-v': verbose = True - self.printsystem.verbose() + printsystem.verbose() argv = argv[1:] elif arg == '-nc': - self.printsystem.use_colors(False) + printsystem.use_colors(False) argv = argv[1:] elif arg == '-version': - self.printsystem.print_version(version) + printsystem.print_version(version) argv = argv[1:] if len(argv) < 1: self.get_modules() @@ -71,6 +76,7 @@ class UniversalSelectTool: elif len(argv) >= 2: module = self.get_module(argv[0]) action = module.get_action(argv[1]) + action.build() action.do_action(argv[2:]) if len(argv) == 2: argv = None @@ -84,12 +90,12 @@ def main(): uselect = UniversalSelectTool() try: list = uselect.parse_argv(sys.argv[1:]) - uselect.printsystem.print_ui(module = list[0], \ + printsystem.print_ui(module = list[0], \ modules = list[1], args = list[2], action = list[3]) except UserWarning, warning: - uselect.printsystem.print_exception(warning, True) + printsystem.print_exception(warning, True) except Exception, exception: - uselect.printsystem.print_exception(exception) + printsystem.print_exception(exception) if verbose: traceback.print_exc() printsystem.print_line('') |