/var/lib/shinken/cli/doc/cli.py is in shinken-common 2.0.3-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 95 96 97 | # Copyright (C) 2009-2012:
# Gabes Jean, naparuba@gmail.com
# Gerhard Lausser, Gerhard.Lausser@consol.de
# Gregory Starck, g.starck@gmail.com
# Hartmut Goebel, h.goebel@goebel-consult.de
#
# This file is part of Shinken.
#
# Shinken is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Shinken is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with Shinken. If not, see <http://www.gnu.org/licenses/>.
import os
from shinken.log import logger, cprint
# Will be populated by the shinken CLI command
CONFIG = None
############# ******************** SERVE ****************###########
def serve(port):
port = int(port)
logger.info("Serving documentation at port %s" % port)
import SimpleHTTPServer
import SocketServer
doc_dir = CONFIG['paths']['doc']
html_dir = os.path.join(doc_dir, 'build', 'html')
os.chdir(html_dir)
try:
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", port), Handler)
httpd.serve_forever()
except KeyboardInterrupt:
pass
except Exception, exp:
logger.error(exp)
def do_serve(port='8080'):
if port is None:
port = '8080'
logger.debug("WILL CALL serve with %s" % port)
serve(port)
################" *********************** COMPILE *************** ##################
def _compile():
try:
from sphinx import main
except ImportError:
logger.error('Cannot import the sphinx lib, please install it')
return
doc_dir = CONFIG['paths']['doc']
html_dir = os.path.join(doc_dir, 'build', 'html')
doctrees_dir = os.path.join(doc_dir, 'build', 'doctrees')
source_dir = os.path.join(doc_dir, 'source')
try:
s = 'sphinx-build -b html -d %s %s %s' % (doctrees_dir, source_dir, html_dir)
args = s.split(' ')
main(args)
except Exception, exp:
logger.error(exp)
return
def do_compile():
logger.debug("CALL compile")
_compile()
exports = {
do_serve : {
'keywords': ['doc-serve'],
'args': [
{'name' : '--port', 'default':'8080', 'description':'Port to expose the http doc. Default to 8080'},
],
'description': 'Publish the online doc on this server'
},
do_compile : {'keywords': ['doc-compile'], 'args': [],
'description': 'Compile the doc before enabling it online'
},
}
|