Add manila cli help output to doc

Dynamically generate the cli help output and include
it into the documentation.

Change-Id: Ib56c8b28272f955924c80f0a893de71a62fc5b49
This commit is contained in:
Thomas Bechtold 2014-11-21 13:07:38 +01:00
parent ced8ee73e1
commit 4faae5a7b8
4 changed files with 47 additions and 1 deletions

1
.gitignore vendored
View File

@ -14,3 +14,4 @@ setuptools_git*.egg
setuptools_git*.egg
AUTHORS
ChangeLog
doc/source/manila_cli_output.rst.inc

View File

@ -21,13 +21,15 @@ import sys
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
ROOT = os.path.abspath(os.path.join(BASE_DIR, "..", ".."))
sys.path.insert(0, ROOT)
# path to local extensions
sys.path.append(os.path.abspath('exts'))
# -- General configuration ----------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ['sphinx.ext.autodoc', 'oslosphinx']
extensions = ['sphinx.ext.autodoc', 'oslosphinx', 'clidoc']
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']

View File

@ -0,0 +1,41 @@
# Copyright 2014 SUSE Linux GmbH
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import os
import sys
from cStringIO import StringIO
def _get_cli_output():
stdout_org = sys.stdout
sys.stdout = output = StringIO()
from manilaclient.shell import OpenStackManilaShell
shell = OpenStackManilaShell()
shell.main(None)
sys.stdout = stdout_org
output.seek(0)
return map(lambda x: " %s" % x, output)
def builder_inited(app):
# generate the missing rst files
with open(os.path.join(app.env.srcdir, "manila_cli_output.rst.inc"), "w") as f:
f.write("``manila help``::\n\n")
f.write("\n".join(_get_cli_output()))
f.write("\n")
def setup(app):
app.connect('builder-inited', builder_inited)

View File

@ -47,3 +47,5 @@ From there, all shell commands take the form::
Run :program:`manila help` to get a full list of all possible commands,
and run :program:`manila help <command>` to get detailed help for that
command.
.. include:: manila_cli_output.rst.inc