forked from moloch--/RootTheBox
-
Notifications
You must be signed in to change notification settings - Fork 0
/
__main__.py
94 lines (79 loc) · 2.94 KB
/
__main__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!/usr/bin/env python
'''
Copyright 2012 Root the Box
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
'''
from optparse import OptionParser
from datetime import datetime
from libs.ConsoleColors import *
__version__ = 'Root the Box - v0.3.0'
current_time = lambda: str(datetime.now()).split(' ')[1].split('.')[0]
def serve(options, *args, **kwargs):
''' Starts the application '''
from libs.ConfigManager import ConfigManager # Sets up logging
from handlers import start_server
print(INFO + '%s : Starting application ...' % current_time())
start_server()
def create(options, *args, **kwargs):
''' Creates/bootstraps the database '''
from libs.ConfigManager import ConfigManager # Sets up logging
from models import create_tables, boot_strap
print(INFO + '%s : Creating the database ...' % current_time())
create_tables()
print(INFO + '%s : Bootstrapping the database ...' % current_time())
boot_strap()
def recovery(options, *args, **kwargs):
''' Starts the recovery console '''
from libs.ConfigManager import ConfigManager # Sets up logging
from setup.recovery import RecoveryConsole
print(INFO + '%s : Starting recovery console ...' % current_time())
console = RecoveryConsole()
try:
console.cmdloop()
except KeyboardInterrupt:
print(INFO + "Have a nice day!")
def setup(options, *args, **kwargs):
''' Imports a setup file '''
from libs.ConfigManager import ConfigManager # Sets up logging
print(INFO + "%s : Running default setup file 'setup/game.py' ..." % current_time())
from setup import game # Runs the setup script
print(INFO + "Setup file completed.")
### Main
if __name__ == '__main__':
parser = OptionParser(
usage="python " + bold + "RootTheBox/" + W + " <options>",
version=__version__,
)
parser.add_option(
"-c", "--create-tables",
action="callback",
callback=create,
help="create database tables"
)
parser.add_option(
"-s", "--start", "--serve",
action="callback",
callback=serve,
help="start the server"
)
parser.add_option(
"-g", "--game",
action="callback",
callback=setup,
help="run game setup script"
)
parser.add_option(
"-r", "--recovery",
action="callback",
callback=recovery,
help="start the recovery console"
)
(options, args) = parser.parse_args()