Merge lp:~linuxjedi/mydumper/trunk-sphinx-docs into lp:~mydumper/mydumper/trunk

Proposed by Andrew Hutchings
Status: Merged
Approved by: Andrew Hutchings
Approved revision: 67
Merged at revision: 65
Proposed branch: lp:~linuxjedi/mydumper/trunk-sphinx-docs
Merge into: lp:~mydumper/mydumper/trunk
Diff against target: 589 lines (+546/-0)
7 files modified
CMakeLists.txt (+2/-0)
cmake/modules/FindSphinx.cmake (+37/-0)
docs/CMakeLists.txt (+153/-0)
docs/_build/conf.py.in (+216/-0)
docs/_build/sources.cmake.in (+16/-0)
docs/index.rst (+20/-0)
docs/usage.rst (+102/-0)
To merge this branch: bzr merge lp:~linuxjedi/mydumper/trunk-sphinx-docs
Reviewer Review Type Date Requested Status
MySQL Data Dumper Team Pending
Review via email: mp+59074@code.launchpad.net

Description of the change

Add python-sphinx docs builder and very basic documentation (will expand later)

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'CMakeLists.txt'
2--- CMakeLists.txt 2011-04-21 20:52:39 +0000
3+++ CMakeLists.txt 2011-04-26 14:57:22 +0000
4@@ -10,6 +10,8 @@
5 find_package(GLIB2)
6 find_package(PCRE)
7
8+add_subdirectory(docs)
9+
10 set(CMAKE_C_FLAGS "-Wall -Werror -O3 -g")
11
12 include_directories(${MYDUMPER_SOURCE_DIR} ${MYSQL_INCLUDE_DIR} ${GLIB2_INCLUDE_DIR} ${PCRE_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS})
13
14=== added file 'cmake/modules/FindSphinx.cmake'
15--- cmake/modules/FindSphinx.cmake 1970-01-01 00:00:00 +0000
16+++ cmake/modules/FindSphinx.cmake 2011-04-26 14:57:22 +0000
17@@ -0,0 +1,37 @@
18+# - This module looks for Sphinx
19+# Find the Sphinx documentation generator
20+#
21+# This modules defines
22+# SPHINX_EXECUTABLE
23+# SPHINX_FOUND
24+
25+#=============================================================================
26+# Copyright 2002-2009 Kitware, Inc.
27+# Copyright 2009-2011 Peter Colberg
28+#
29+# Distributed under the OSI-approved BSD License (the "License");
30+# see accompanying file COPYING-CMAKE-SCRIPTS for details.
31+#
32+# This software is distributed WITHOUT ANY WARRANTY; without even the
33+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
34+# See the License for more information.
35+#=============================================================================
36+# (To distribute this file outside of CMake, substitute the full
37+# License text for the above reference.)
38+
39+find_program(SPHINX_EXECUTABLE NAMES sphinx-build
40+ HINTS
41+ $ENV{SPHINX_DIR}
42+ PATH_SUFFIXES bin
43+ DOC "Sphinx documentation generator"
44+)
45+
46+include(FindPackageHandleStandardArgs)
47+
48+find_package_handle_standard_args(Sphinx DEFAULT_MSG
49+ SPHINX_EXECUTABLE
50+)
51+
52+mark_as_advanced(
53+ SPHINX_EXECUTABLE
54+)
55
56=== added directory 'docs'
57=== added file 'docs/CMakeLists.txt'
58--- docs/CMakeLists.txt 1970-01-01 00:00:00 +0000
59+++ docs/CMakeLists.txt 2011-04-26 14:57:22 +0000
60@@ -0,0 +1,153 @@
61+# Generate documentation in HTML and PDF format using Sphinx.
62+
63+set(GENERATE_DOC TRUE)
64+
65+# We use the Sphinx documentation generator to render HTML and manual
66+# pages from the user and reference documentation in ReST format.
67+find_package(Sphinx QUIET)
68+if(NOT SPHINX_FOUND)
69+ message(WARNING "Unable to find Sphinx documentation generator")
70+ set(GENERATE_DOC FALSE)
71+endif(NOT SPHINX_FOUND)
72+
73+if(GENERATE_DOC)
74+ # documentation tools
75+ set(SOURCE_BUILD_DIR "${CMAKE_CURRENT_SOURCE_DIR}/_build")
76+ # configured documentation tools and intermediate build results
77+ set(BINARY_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/_build")
78+ # static ReST documentation sources
79+ set(SOURCES_DIR "${CMAKE_CURRENT_BINARY_DIR}/_sources")
80+ # generated ReST documentation sources
81+ set(REF_SOURCES_DIR "${SOURCES_DIR}/reference")
82+ # master document with modules index
83+ set(REF_MASTER_DOC "modules")
84+
85+ # substitute variables in configuration and scripts
86+ foreach(file
87+ conf.py
88+ sources.cmake
89+ )
90+ configure_file(
91+ "${SOURCE_BUILD_DIR}/${file}.in"
92+ "${BINARY_BUILD_DIR}/${file}"
93+ @ONLY
94+ )
95+ endforeach(file)
96+
97+ set(CLEAN_FILES
98+ "${BINARY_BUILD_DIR}/html"
99+ )
100+
101+ add_custom_target(ALL
102+ DEPENDS "${REF_SOURCES_DIR}/${REF_MASTER_DOC}.rst"
103+ )
104+
105+ # Sphinx requires all sources in the same directory tree. As we wish
106+ # to include generated reference documention from the build tree, we
107+ # copy static ReST documents to the build tree before calling Sphinx.
108+ add_custom_target(doc_sources ALL
109+ "${CMAKE_COMMAND}" -P "${BINARY_BUILD_DIR}/sources.cmake"
110+ )
111+ list(APPEND CLEAN_FILES
112+ "${SOURCES_DIR}"
113+ )
114+
115+ # note the trailing slash to exclude directory name
116+ install(DIRECTORY "${SOURCES_DIR}/"
117+ DESTINATION "share/doc/mydumper"
118+ )
119+
120+ # Sphinx cache with pickled ReST documents
121+ set(SPHINX_CACHE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_doctrees")
122+ # HTML output directory
123+ set(SPHINX_HTML_DIR "${CMAKE_CURRENT_BINARY_DIR}/html")
124+
125+ # This target builds HTML documentation using Sphinx.
126+ add_custom_target(doc_html ALL
127+ ${SPHINX_EXECUTABLE}
128+ -q -b html
129+ -c "${BINARY_BUILD_DIR}"
130+ -d "${SPHINX_CACHE_DIR}"
131+ "${SOURCES_DIR}"
132+ "${SPHINX_HTML_DIR}"
133+ COMMENT "Building HTML documentation with Sphinx"
134+ )
135+ list(APPEND CLEAN_FILES
136+ "${SPHINX_CACHE_DIR}"
137+ "${SPHINX_HTML_DIR}"
138+ )
139+ add_dependencies(doc_html
140+ doc_sources
141+ )
142+ install(DIRECTORY "${SPHINX_HTML_DIR}"
143+ DESTINATION "share/doc/mydumper"
144+ )
145+
146+ # HTML output directory
147+ set(SPHINX_MAN_DIR "${CMAKE_CURRENT_BINARY_DIR}/man")
148+ # This target builds a manual page using Sphinx.
149+
150+ add_custom_target(doc_man ALL
151+ ${SPHINX_EXECUTABLE}
152+ -q -b man
153+ -c "${BINARY_BUILD_DIR}"
154+ -d "${SPHINX_CACHE_DIR}"
155+ "${SOURCES_DIR}"
156+ "${SPHINX_MAN_DIR}"
157+ COMMENT "Building manual page with Sphinx"
158+ )
159+ list(APPEND CLEAN_FILES
160+ "${SPHINX_MAN_DIR}"
161+ )
162+ add_dependencies(doc_man
163+ doc_sources
164+ )
165+ # serialize Sphinx targets to avoid cache conflicts in parallel builds
166+ add_dependencies(doc_man
167+ doc_html
168+ )
169+ install(FILES "${SPHINX_MAN_DIR}/mysqldatadumper.1"
170+ DESTINATION "share/man/man1"
171+ )
172+
173+ # This target builds PDF documentation using Sphinx and LaTeX.
174+ if(PDFLATEX_COMPILER)
175+ # PDF output directory
176+ set(SPHINX_PDF_DIR "${CMAKE_CURRENT_BINARY_DIR}/pdf")
177+
178+ add_custom_target(doc_pdf ALL
179+ ${SPHINX_EXECUTABLE}
180+ -q -b latex
181+ -c "${BINARY_BUILD_DIR}"
182+ -d "${SPHINX_CACHE_DIR}"
183+ "${SOURCES_DIR}"
184+ "${SPHINX_PDF_DIR}"
185+ COMMENT "Building PDF documentation with Sphinx"
186+ )
187+ add_custom_command(TARGET doc_pdf POST_BUILD
188+ COMMAND ${CMAKE_MAKE_PROGRAM} LATEXOPTS=-interaction=batchmode
189+ WORKING_DIRECTORY "${SPHINX_PDF_DIR}"
190+ )
191+ list(APPEND CLEAN_FILES
192+ "${SPHINX_PDF_DIR}"
193+ )
194+ add_dependencies(doc_pdf
195+ doc_sources
196+ )
197+ # serialize Sphinx targets to avoid cache conflicts in parallel builds
198+ add_dependencies(doc_pdf
199+ doc_man
200+ )
201+ install(FILES "${SPHINX_PDF_DIR}/mydumper.pdf"
202+ DESTINATION "share/doc/mydumper"
203+ )
204+ endif(PDFLATEX_COMPILER)
205+
206+ # Add output directories to clean target.
207+ set_directory_properties(PROPERTIES
208+ ADDITIONAL_MAKE_CLEAN_FILES "${CLEAN_FILES}"
209+ )
210+
211+else(GENERATE_DOC)
212+ message(WARNING "Missing required documentation tools")
213+endif(GENERATE_DOC)
214
215=== added directory 'docs/_build'
216=== added file 'docs/_build/conf.py.in'
217--- docs/_build/conf.py.in 1970-01-01 00:00:00 +0000
218+++ docs/_build/conf.py.in 2011-04-26 14:57:22 +0000
219@@ -0,0 +1,216 @@
220+# -*- coding: utf-8 -*-
221+#
222+# MySQL Data Dumper documentation build configuration file, created by
223+# sphinx-quickstart on Tue Apr 26 11:44:25 2011.
224+#
225+# This file is execfile()d with the current directory set to its containing dir.
226+#
227+# Note that not all possible configuration values are present in this
228+# autogenerated file.
229+#
230+# All configuration values have a default; values that are commented out
231+# serve to show the default.
232+
233+import sys, os
234+
235+# If extensions (or modules to document with autodoc) are in another directory,
236+# add these directories to sys.path here. If the directory is relative to the
237+# documentation root, use os.path.abspath to make it absolute, like shown here.
238+#sys.path.insert(0, os.path.abspath('.'))
239+
240+# -- General configuration -----------------------------------------------------
241+
242+# If your documentation needs a minimal Sphinx version, state it here.
243+#needs_sphinx = '1.0'
244+
245+# Add any Sphinx extension module names here, as strings. They can be extensions
246+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
247+extensions = ['sphinx.ext.todo']
248+
249+# Add any paths that contain templates here, relative to this directory.
250+templates_path = ['@CMAKE_CURRENT_SOURCE_DIR@/_templates']
251+
252+# The suffix of source filenames.
253+source_suffix = '.rst'
254+
255+# The encoding of source files.
256+#source_encoding = 'utf-8-sig'
257+
258+# The master toctree document.
259+master_doc = 'index'
260+
261+# General information about the project.
262+project = u'@PROJECT_NAME@'
263+copyright = u'2011, Andrew Hutchings'
264+
265+# The version info for the project you're documenting, acts as replacement for
266+# |version| and |release|, also used in various other places throughout the
267+# built documents.
268+#
269+# The short X.Y version.
270+version = '1.0'
271+# The full version, including alpha/beta/rc tags.
272+release = '1.0'
273+
274+# The language for content autogenerated by Sphinx. Refer to documentation
275+# for a list of supported languages.
276+#language = None
277+
278+# There are two options for replacing |today|: either, you set today to some
279+# non-false value, then it is used:
280+#today = ''
281+# Else, today_fmt is used as the format for a strftime call.
282+#today_fmt = '%B %d, %Y'
283+
284+# List of patterns, relative to source directory, that match files and
285+# directories to ignore when looking for source files.
286+exclude_patterns = ['_build']
287+
288+# The reST default role (used for this markup: `text`) to use for all documents.
289+#default_role = None
290+
291+# If true, '()' will be appended to :func: etc. cross-reference text.
292+#add_function_parentheses = True
293+
294+# If true, the current module name will be prepended to all description
295+# unit titles (such as .. function::).
296+#add_module_names = True
297+
298+# If true, sectionauthor and moduleauthor directives will be shown in the
299+# output. They are ignored by default.
300+#show_authors = False
301+
302+# The name of the Pygments (syntax highlighting) style to use.
303+pygments_style = 'sphinx'
304+
305+# A list of ignored prefixes for module index sorting.
306+#modindex_common_prefix = []
307+
308+
309+# -- Options for HTML output ---------------------------------------------------
310+
311+# The theme to use for HTML and HTML Help pages. See the documentation for
312+# a list of builtin themes.
313+html_theme = 'default'
314+
315+# Theme options are theme-specific and customize the look and feel of a theme
316+# further. For a list of options available for each theme, see the
317+# documentation.
318+#html_theme_options = {}
319+
320+# Add any paths that contain custom themes here, relative to this directory.
321+#html_theme_path = []
322+
323+# The name for this set of Sphinx documents. If None, it defaults to
324+# "<project> v<release> documentation".
325+#html_title = None
326+
327+# A shorter title for the navigation bar. Default is the same as html_title.
328+#html_short_title = None
329+
330+# The name of an image file (relative to this directory) to place at the top
331+# of the sidebar.
332+#html_logo = None
333+
334+# The name of an image file (within the static path) to use as favicon of the
335+# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
336+# pixels large.
337+#html_favicon = None
338+
339+# Add any paths that contain custom static files (such as style sheets) here,
340+# relative to this directory. They are copied after the builtin static files,
341+# so a file named "default.css" will overwrite the builtin "default.css".
342+html_static_path = ['@CMAKE_CURRENT_SOURCE_DIR@/_static']
343+
344+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
345+# using the given strftime format.
346+#html_last_updated_fmt = '%b %d, %Y'
347+
348+# If true, SmartyPants will be used to convert quotes and dashes to
349+# typographically correct entities.
350+#html_use_smartypants = True
351+
352+# Custom sidebar templates, maps document names to template names.
353+#html_sidebars = {}
354+
355+# Additional templates that should be rendered to pages, maps page names to
356+# template names.
357+#html_additional_pages = {}
358+
359+# If false, no module index is generated.
360+#html_domain_indices = True
361+
362+# If false, no index is generated.
363+#html_use_index = True
364+
365+# If true, the index is split into individual pages for each letter.
366+#html_split_index = False
367+
368+# If true, links to the reST sources are added to the pages.
369+#html_show_sourcelink = True
370+
371+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
372+#html_show_sphinx = True
373+
374+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
375+#html_show_copyright = True
376+
377+# If true, an OpenSearch description file will be output, and all pages will
378+# contain a <link> tag referring to it. The value of this option must be the
379+# base URL from which the finished HTML is served.
380+#html_use_opensearch = ''
381+
382+# This is the file name suffix for HTML files (e.g. ".xhtml").
383+#html_file_suffix = None
384+
385+# Output file base name for HTML help builder.
386+htmlhelp_basename = 'MySQLDataDumperdoc'
387+
388+
389+# -- Options for LaTeX output --------------------------------------------------
390+
391+# The paper size ('letter' or 'a4').
392+#latex_paper_size = 'letter'
393+
394+# The font size ('10pt', '11pt' or '12pt').
395+#latex_font_size = '10pt'
396+
397+# Grouping the document tree into LaTeX files. List of tuples
398+# (source start file, target name, title, author, documentclass [howto/manual]).
399+latex_documents = [
400+ ('index', 'MySQLDataDumper.tex', u'@PROJECT_NAME@ Documentation',
401+ u'Andrew Hutchings', 'manual'),
402+]
403+
404+# The name of an image file (relative to this directory) to place at the top of
405+# the title page.
406+#latex_logo = None
407+
408+# For "manual" documents, if this is true, then toplevel headings are parts,
409+# not chapters.
410+#latex_use_parts = False
411+
412+# If true, show page references after internal links.
413+#latex_show_pagerefs = False
414+
415+# If true, show URL addresses after external links.
416+#latex_show_urls = False
417+
418+# Additional stuff for the LaTeX preamble.
419+#latex_preamble = ''
420+
421+# Documents to append as an appendix to all manuals.
422+#latex_appendices = []
423+
424+# If false, no module index is generated.
425+#latex_domain_indices = True
426+
427+
428+# -- Options for manual page output --------------------------------------------
429+
430+# One entry per manual page. List of tuples
431+# (source start file, name, description, authors, manual section).
432+man_pages = [
433+ ('index', 'mysqldatadumper', u'@PROGRAM_DESC@',
434+ [u'Andrew Hutchings'], 1)
435+]
436
437=== added file 'docs/_build/sources.cmake.in'
438--- docs/_build/sources.cmake.in 1970-01-01 00:00:00 +0000
439+++ docs/_build/sources.cmake.in 2011-04-26 14:57:22 +0000
440@@ -0,0 +1,16 @@
441+# This script recursively copies all ReST documents from the source directory to
442+# the binary directory. CMAKE_CURRENT_SOURCE_DIR and SOURCES_DIR are substituted
443+# upon the cmake stage. The script is executed upon the make stage to ensure
444+# that the binary sources directory is always up to date.
445+
446+file(GLOB_RECURSE SOURCES
447+ RELATIVE "@CMAKE_CURRENT_SOURCE_DIR@"
448+ "@CMAKE_CURRENT_SOURCE_DIR@/*.rst"
449+)
450+foreach(source ${SOURCES})
451+ configure_file(
452+ "@CMAKE_CURRENT_SOURCE_DIR@/${source}"
453+ "@SOURCES_DIR@/${source}"
454+ COPYONLY
455+ )
456+endforeach(source)
457
458=== added directory 'docs/_static'
459=== added file 'docs/index.rst'
460--- docs/index.rst 1970-01-01 00:00:00 +0000
461+++ docs/index.rst 2011-04-26 14:57:22 +0000
462@@ -0,0 +1,20 @@
463+.. MySQL Data Dumper documentation master file
464+ You can adapt this file completely to your liking, but it should at least
465+ contain the root `toctree` directive.
466+
467+Welcome to MySQL Data Dumper's documentation!
468+=============================================
469+
470+Contents:
471+
472+.. toctree::
473+ :maxdepth: 2
474+
475+ usage
476+
477+Indices and tables
478+==================
479+
480+* :ref:`genindex`
481+* :ref:`search`
482+
483
484=== added file 'docs/usage.rst'
485--- docs/usage.rst 1970-01-01 00:00:00 +0000
486+++ docs/usage.rst 2011-04-26 14:57:22 +0000
487@@ -0,0 +1,102 @@
488+MySQL Data Dumper Usage
489+=======================
490+
491+Synopsis
492+--------
493+
494+:program:`mydumper`
495+
496+Description
497+-----------
498+
499+:program:`mydumper` is a tool used for backing up MySQL database servers much
500+faster than the mysqldump tool distributed with MySQL.
501+
502+Options
503+-------
504+
505+The :program:`mydumper` tool has several available options:
506+
507+.. program:: mydumper
508+
509+.. option:: --help, -?
510+
511+ Show help text
512+
513+.. option:: --host, -h
514+
515+ Hostname of MySQL server to connect to (default localhost)
516+
517+.. option:: --user, -u
518+
519+ MySQL username with the correct privileges to execute the dump
520+
521+.. option:: --password, -p
522+
523+ The corresponding password for the MySQL user
524+
525+.. option:: --port, -P
526+
527+ The port for the MySQL connection.
528+
529+ .. note::
530+
531+ For localhost TCP connections use 127.0.0.1 for :option:`--host`.
532+
533+.. option:: --socket, -S
534+
535+ The UNIX domain socket file to use for the connection
536+
537+.. option:: --database, -B
538+
539+ Database to dump
540+
541+.. option:: --table-list, -T
542+
543+ A comma separated list of tables to dump
544+
545+.. option:: --threads, -t
546+
547+ The number of threads to use for dumping data, default is 4
548+
549+.. option:: --outputdir, -o
550+
551+ Output directory name, default is export-YYYYMMDD-HHMMSS
552+
553+.. option:: --statement-size, -s
554+
555+ The maximum size for an insert statement before breaking into a new
556+ statement, default 1,000,000 bytes
557+
558+.. option:: --rows, -r
559+
560+ Split table into chunks of this many rows, default unlimited
561+
562+.. option:: --compress, -c
563+
564+ Compress the output files
565+
566+.. option:: --build-empty-files, -e
567+
568+ Create empty dump files if there is no data to dump
569+
570+.. option:: --regex, -x
571+
572+ A regular expression to match against database and table
573+
574+.. option:: --ignore-engines, -i
575+
576+ Comma separated list of storage engines to ignore
577+
578+.. option:: --long-query-guard, -l
579+
580+ Timeout for long query execution in seconds, default 60
581+
582+.. option:: --kill-long-queries, -k
583+
584+ Kill long running queries instead of aborting the dump
585+
586+.. option:: --version, -V
587+
588+ Show the program version and exit
589+

Subscribers

People subscribed via source and target branches