Projet

Général

Profil

Télécharger (1,39 ko) Statistiques
| Branche: | Révision:

root / larpe / tags / release-1.1.1 / larpe / ctl / start.py @ d03cb81c

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

    
(2-2/2)