summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'uselect.py')
-rwxr-xr-xuselect.py54
1 files changed, 30 insertions, 24 deletions
diff --git a/uselect.py b/uselect.py
index 4938176..c51be9a 100755
--- a/uselect.py
+++ b/uselect.py
@@ -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('')