summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRaúl Benencia <rul@kalgan.cc>2012-10-10 18:34:21 -0300
committerRaúl Benencia <rul@kalgan.cc>2012-10-10 18:34:21 -0300
commit7ef52c68574b54333c44c5be739049deac3a28ec (patch)
treed86418475ecaf17087a40c90a26c31519b770e5c /lib
parentb3fcf3b4e9dc49b0736e8ba1dfdab2e225999c6d (diff)
Data loader
Diffstat (limited to 'lib')
-rw-r--r--lib/commandmanager.py37
-rw-r--r--lib/completionmanager.py9
-rw-r--r--lib/exceptions.py8
-rw-r--r--lib/outputmanager.py41
4 files changed, 95 insertions, 0 deletions
diff --git a/lib/commandmanager.py b/lib/commandmanager.py
new file mode 100644
index 0000000..3a06f99
--- /dev/null
+++ b/lib/commandmanager.py
@@ -0,0 +1,37 @@
+from lib.exceptions import CmdNotFoundException
+
+class Command:
+ def __init__(self):
+ pass
+
+ def execute(self, loader, params):
+ pass
+
+ def usage(self, cmd_name):
+ return cmd_name
+
+class AdminCommand(Command):
+ pass
+
+class NetworkCommand(Command):
+ pass
+
+class DomainCommand(Command):
+ pass
+
+class CommandManager:
+ def __init__(self):
+ self.cmds = {
+ 'admin' : AdminCommand(),
+ 'network': NetworkCommand(),
+ 'domain' : DomainCommand(),
+ }
+
+ def find(self, cmd):
+ if cmd in self.cmds:
+ return self.cmds[cmd]
+ else:
+ raise CmdNotFoundException(cmd + 'is not a valid command.')
+
+ def commands(self):
+ return self.cmds.keys()
diff --git a/lib/completionmanager.py b/lib/completionmanager.py
new file mode 100644
index 0000000..fe6f099
--- /dev/null
+++ b/lib/completionmanager.py
@@ -0,0 +1,9 @@
+class CompletionManager:
+ def __init__(self):
+ pass
+
+ def generate_commands(self):
+ pass
+
+ def generate_parameters(self):
+ pass
diff --git a/lib/exceptions.py b/lib/exceptions.py
new file mode 100644
index 0000000..63c7475
--- /dev/null
+++ b/lib/exceptions.py
@@ -0,0 +1,8 @@
+class CmdNotFoundException(Exception):
+ pass
+
+class CommandException(Exception):
+ def __init__(self, message, print_usage=True):
+ Exception.__init__(self, message)
+ self.print_usage = print_usage
+
diff --git a/lib/outputmanager.py b/lib/outputmanager.py
new file mode 100644
index 0000000..d9d4af1
--- /dev/null
+++ b/lib/outputmanager.py
@@ -0,0 +1,41 @@
+#!/usr/bin/python3
+import sys
+
+class OutputManager:
+ def __init__(self):
+
+ self.echo_output = True
+
+ def line_break(self):
+ if self.echo_output:
+ sys.stdout.write('\n')
+ sys.stdout.flush()
+
+ return self
+
+ def error(self, string):
+ if self.echo_output:
+ self._erase_line()
+ string = '[-] ' + string
+ self.last_line_length = len(string)
+
+ sys.stdout.write(string)
+ sys.stdout.flush()
+
+ return self
+
+ def normal(self, string):
+ if self.echo_output:
+ self._erase_line()
+ self.last_line_length = len(string)
+ sys.stdout.write(string)
+ sys.stdout.flush()
+
+ return self
+
+ def _erase_line(self):
+ sys.stdout.write('\r' + ' ' * self.last_line_length + '\r')
+ return self
+
+
+
nihil fit ex nihilo