docsite/build-site.py
5e453555
 #!/usr/bin/env python
 # (c) 2012, Michael DeHaan <michael.dehaan@gmail.com>
 #
 # This file is part of the Ansible Documentation
 #
 # Ansible is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
 #
 # Ansible 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 General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with Ansible.  If not, see <http://www.gnu.org/licenses/>.
5cac8efd
 from __future__ import print_function
5e453555
 
 __docformat__ = 'restructuredtext'
 
 import os
 import sys
12fd1934
 import traceback
badb4139
 try:
     from sphinx.application import Sphinx
 except ImportError:
5cac8efd
     print("#################################")
     print("Dependency missing: Python Sphinx")
     print("#################################")
badb4139
     sys.exit(1)
0404acfc
 import os
5e453555
 
 
 class SphinxBuilder(object):
     """
     Creates HTML documentation using Sphinx.
     """
 
     def __init__(self):
         """
         Run the DocCommand.
         """
5cac8efd
         print("Creating html documentation ...")
5e453555
 
         try:
             buildername = 'html'
 
d706aca8
             outdir = os.path.abspath(os.path.join(os.getcwd(), "htmlout"))
5e453555
             # Create the output directory if it doesn't exist
             if not os.access(outdir, os.F_OK):
                 os.mkdir(outdir)
 
             doctreedir = os.path.join('./', '.doctrees')
 
0404acfc
             confdir = os.path.abspath('./')
             srcdir = os.path.abspath('rst')
884d8af7
             freshenv = True
5e453555
 
             # Create the builder
             app = Sphinx(srcdir,
                               confdir,
                               outdir,
                               doctreedir,
                               buildername,
                               {},
                               sys.stdout,
                               sys.stderr,
                               freshenv)
 
             app.builder.build_all()
5738f872
 
5cac8efd
         except ImportError:
12fd1934
             traceback.print_exc()
5cac8efd
         except Exception as ex:
             print("FAIL! exiting ... (%s)" % ex, file=sys.stderr)
5e453555
 
     def build_docs(self):
         self.app.builder.build_all()
 
 
5738f872
 def build_rst_docs():
5e453555
     docgen = SphinxBuilder()
baf2a057
 
5738f872
 if __name__ == '__main__':
     if '-h' in sys.argv or '--help' in sys.argv:
5cac8efd
         print("This script builds the html documentation from rst/asciidoc sources.\n")
         print("    Run 'make docs' to build everything.")
         print("    Run 'make viewdocs' to build and then preview in a web browser.")
5738f872
         sys.exit(0)
 
de031c84
     build_rst_docs()
5738f872
 
baf2a057
     if "view" in sys.argv:
         import webbrowser
5ba0e747
         if not webbrowser.open('htmlout/index.html'):
5cac8efd
             print("Could not open on your webbrowser.", file=sys.stderr)