summaryrefslogtreecommitdiff
path: root/admin
diff options
context:
space:
mode:
authorTommi Virtanen <tommi.virtanen@dreamhost.com>2011-08-19 16:43:21 -0700
committerTommi Virtanen <tommi.virtanen@dreamhost.com>2011-08-29 17:27:14 -0700
commitf1d89644998e227319fcafb44f0f3a17df502f5a (patch)
treebdec177fb6b0e226770e1fabca3ff402ec4c6f94 /admin
parent68f57f9afbc0b17e3050345260884980b8a6cb48 (diff)
downloadceph-f1d89644998e227319fcafb44f0f3a17df502f5a.tar.gz
First draft of the documentation overhaul.
To build the docs, run ./admin/build-doc. To browse them, either get them on any static website, or just run ./admin/serve-doc to serve them quickly off of port 8080. build-doc sets up a virtualenv to avoid needing Sphinx installed system-wide. serve-doc needs thttpd installed. Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
Diffstat (limited to 'admin')
-rwxr-xr-xadmin/build-doc23
-rwxr-xr-xadmin/serve-doc29
2 files changed, 52 insertions, 0 deletions
diff --git a/admin/build-doc b/admin/build-doc
new file mode 100755
index 00000000000..fd1afe5c365
--- /dev/null
+++ b/admin/build-doc
@@ -0,0 +1,23 @@
+#!/bin/sh
+set -e
+cd "$(dirname "$0")"
+cd ..
+
+dia --filter=png-libart --export=doc/overview.png.tmp doc/overview.dia
+mv -- doc/overview.png.tmp doc/overview.png
+
+install -d -m0755 build-doc
+cd build-doc
+
+if [ ! -e virtualenv ]; then
+ virtualenv --no-site-packages virtualenv
+fi
+if [ ! -x virtualenv/bin/sphinx-build ]; then
+ ./virtualenv/bin/pip install sphinx
+fi
+
+install -d -m0755 \
+ output/html \
+ output/man
+./virtualenv/bin/sphinx-build -a -b dirhtml -d doctrees ../doc output/html
+./virtualenv/bin/sphinx-build -a -b man -d doctrees ../doc output/man
diff --git a/admin/serve-doc b/admin/serve-doc
new file mode 100755
index 00000000000..9c1bfb44c79
--- /dev/null
+++ b/admin/serve-doc
@@ -0,0 +1,29 @@
+#!/usr/bin/python
+import SimpleHTTPServer
+import SocketServer
+import os
+import sys
+
+path = os.path.dirname(sys.argv[0])
+os.chdir(path)
+os.chdir('..')
+os.chdir('build-doc/output/html')
+
+class ReusingTCPServer(SimpleHTTPServer.SimpleHTTPRequestHandler):
+ allow_reuse_address = True
+
+ def send_head(self):
+ # horrible kludge because SimpleHTTPServer is buggy wrt
+ # slash-redirecting of requests with query arguments, and will
+ # redirect to /foo?q=bar/ -- wrong slash placement
+ self.path = self.path.split('?', 1)[0]
+ return SimpleHTTPServer.SimpleHTTPRequestHandler.send_head(self)
+
+httpd = SocketServer.TCPServer(
+ ("", 8080),
+ ReusingTCPServer,
+ )
+try:
+ httpd.serve_forever()
+except KeyboardInterrupt:
+ pass