diff options
author | Sérgio Almeida <mephx@thedude.(none)> | 2009-06-17 18:45:31 +0100 |
---|---|---|
committer | Sérgio Almeida <mephx@thedude.(none)> | 2009-06-17 18:45:31 +0100 |
commit | 5e561c1bb476977119fb947a4e21fe6dd4e3c314 (patch) | |
tree | edc9261465523b884f869145aa97a0b7dd9ccd2b /uselect.py | |
download | uselect-5e561c1bb476977119fb947a4e21fe6dd4e3c314.tar.gz uselect-5e561c1bb476977119fb947a4e21fe6dd4e3c314.tar.bz2 uselect-5e561c1bb476977119fb947a4e21fe6dd4e3c314.zip |
Initial Universal Select Tool Commit
Diffstat (limited to 'uselect.py')
-rwxr-xr-x | uselect.py | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/uselect.py b/uselect.py new file mode 100755 index 0000000..4938176 --- /dev/null +++ b/uselect.py @@ -0,0 +1,99 @@ +#!/usr/bin/env python +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# Universal Select Tool +# Base Module +# umodule.py mephx.x@gmail.com + +import os +import re +import sys +import stat +import string +import traceback + +from umodule import Module +from uio import PrintSystem +from uio import FileSystem + +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) + if match: + self.modules.append(Module(match.group(1), self.filesystem)) + + 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 + + def parse_argv(self, argv): + global profile, verbose, version + module = None + modules = None + action = None + args = None + self.printsystem.use_colors(True) + for arg in argv: + if arg == '-v': + verbose = True + self.printsystem.verbose() + argv = argv[1:] + elif arg == '-nc': + self.printsystem.use_colors(False) + argv = argv[1:] + elif arg == '-version': + self.printsystem.print_version(version) + argv = argv[1:] + if len(argv) < 1: + self.get_modules() + modules = self.modules + elif len(argv) == 1: + module = self.get_module(argv[0]) + elif len(argv) >= 2: + module = self.get_module(argv[0]) + action = module.get_action(argv[1]) + action.do_action(argv[2:]) + if len(argv) == 2: + argv = None + else: + argv = argv[2:] + + return [module, modules, argv, action] + + +def main(): + uselect = UniversalSelectTool() + try: + list = uselect.parse_argv(sys.argv[1:]) + uselect.printsystem.print_ui(module = list[0], \ + modules = list[1], args = list[2], action = list[3]) + except UserWarning, warning: + uselect.printsystem.print_exception(warning, True) + except Exception, exception: + uselect.printsystem.print_exception(exception) + if verbose: + traceback.print_exc() + printsystem.print_line('') + exit(1) + exit(0) + +if __name__ == '__main__': main() |