forked from piranha/cyrax
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathconrad
More file actions
executable file
·68 lines (53 loc) · 2.16 KB
/
conrad
File metadata and controls
executable file
·68 lines (53 loc) · 2.16 KB
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
#!/usr/bin/python
import sys, logging
import os.path as op
from optparse import OptionParser
__version__ = '2.6'
logger = logging.getLogger('conrad')
def main():
from libconrad.core import Site
from libconrad.server import start_server
usage = '%s [options] [source]' % sys.argv[0]
parser = OptionParser(usage)
parser.add_option('', '--log', default='-',
help='redirect log to this file (default: stdout)')
parser.add_option('-q', '--quiet', default=False, action='store_true',
help='do not output information messages')
parser.add_option('-v', '--verbose', default=False, action='store_true',
help='output more logs')
parser.add_option('-w', '--webserve', default=False, action='store_true',
help='start local web server')
parser.add_option('-a', '--address', default='127.0.0.1',
help='address to listen on (default: all interfaces)')
parser.add_option('-p', '--port', default=8000, type='int',
help='port to listen on (default: 8000)')
parser.add_option('-d', '--dest', default='',
help='destination directory (default: _build in source dir)')
parser.add_option('', '--version', default=False, action='store_true',
help='show libconrad version')
opts, args = parser.parse_args()
if opts.version:
print 'libconrad', __version__
sys.exit(0)
if opts.verbose:
level = logging.DEBUG
elif opts.quiet:
level = logging.ERROR
else:
level = logging.INFO
if opts.log == '-':
logging.basicConfig(stream=sys.stdout, level=level)
else:
logging.basicConfig(filename=opts.log, level=level)
source = op.abspath(args and args[0] or '.')
if not op.exists(op.join(source, 'settings.cfg')):
logger.error("Can't find settings.cfg in the current folder")
sys.exit(1)
dest = opts.dest or op.join(source, '_build')
if opts.webserve:
start_server(opts.address, opts.port, source, dest)
else:
site = Site(source, dest)
site.render()
if __name__ == '__main__':
main()