1
|
import socket
|
2
|
import sys
|
3
|
import quixote.server.simple_server
|
4
|
|
5
|
from qommon.scgi_server import run
|
6
|
|
7
|
import publisher
|
8
|
|
9
|
def start(args):
|
10
|
run_function = run
|
11
|
run_kwargs = {
|
12
|
'port': 3007,
|
13
|
'script_name': ''
|
14
|
}
|
15
|
http = 0
|
16
|
|
17
|
i = 0
|
18
|
while i < len(args):
|
19
|
if args[i] == '--port':
|
20
|
run_kwargs['port'] = int(args[i+1])
|
21
|
i += 1
|
22
|
elif args[i] == '--silent':
|
23
|
sys.stdout = open('/dev/null', 'w')
|
24
|
sys.stderr = open('/dev/null', 'w')
|
25
|
elif args[i] == '--script-name':
|
26
|
run_kwargs['script_name'] = args[i+1]
|
27
|
i += 1
|
28
|
elif args[i] == '--app-dir':
|
29
|
publisher.LarpePublisher.APP_DIR = args[i+1]
|
30
|
i += 1
|
31
|
elif args[i] == '--data-dir':
|
32
|
publisher.LarpePublisher.DATA_DIR = args[i+1]
|
33
|
i += 1
|
34
|
elif args[i] == '--http':
|
35
|
http = 1
|
36
|
i += 1
|
37
|
|
38
|
if http == 1:
|
39
|
run_function = quixote.server.simple_server.run
|
40
|
if run_kwargs['script_name']:
|
41
|
print "--http option is incompatible with --script-name"
|
42
|
del run_kwargs['script_name']
|
43
|
try:
|
44
|
run_function(publisher.LarpePublisher.create_publisher, **run_kwargs)
|
45
|
except socket.error, err:
|
46
|
if err[0] == 98:
|
47
|
print >> sys.stderr, 'address already in use'
|
48
|
sys.exit(1)
|
49
|
raise
|
50
|
except KeyboardInterrupt:
|
51
|
sys.exit(1)
|
52
|
|