Skip to content

Commit

Permalink
you can now configure sphinx_doc_author, sphinx_doc_builder, sphinx_p…
Browse files Browse the repository at this point in the history
…roject_name, sphinx_project_version via project.set_property in your build.py, fixing a typo
  • Loading branch information
Marcel Wolf committed Apr 19, 2015
1 parent 8b6f7ae commit df9b85b
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 31 deletions.
9 changes: 5 additions & 4 deletions build.py
Expand Up @@ -103,11 +103,12 @@ def initialize(project):

project.set_property("copy_resources_target", "$dir_dist")
project.get_property("copy_resources_glob").append("LICENSE")
project.get_property("filter_resources_glob").extend(["**/pybuilder/__init__.py",
'**/pybuilder/plugins/python/sphinx_plugin.py'])
project.get_property("filter_resources_glob").append("**/pybuilder/__init__.py")

project.doc_author = "PyBuilder_Team"
project.doc_builder = "html"
project.set_property("sphinx_doc_author", "PyBuilder_Team")
project.set_property("sphinx_doc_builder", "html")
project.set_property("sphinx_project_name", 'PyBuilder')
project.set_property("sphinx_project_version", '0.10.59')

project.get_property("source_dist_ignore_patterns").append(".project")
project.get_property("source_dist_ignore_patterns").append(".pydevproject")
Expand Down
43 changes: 21 additions & 22 deletions src/main/python/pybuilder/plugins/python/sphinx_plugin.py
Expand Up @@ -27,7 +27,7 @@
from pybuilder.errors import BuildFailedException
from pybuilder.utils import assert_can_execute
from pybuilder.utils import execute_command
from pybuilder import scaffolding as SCAFFODING
from pybuilder import scaffolding as SCAFFOLDING
from pybuilder.core import NAME_ATTRIBUTE

__author__ = 'Thomas Prebble', 'Marcel Wolf'
Expand All @@ -36,33 +36,32 @@
use_plugin("core")


DEFAULT_SPHINX_OUTPUT_DIR = SCAFFODING.DEFAULT_DOCS_DIRECTORY + "/_build/"
DEFAULT_SPHINX_OUTPUT_DIR = SCAFFOLDING.DEFAULT_DOCS_DIRECTORY + "/_build/"

"""
build.py:
:param ${name}: name = "project name"
:param ${version}: version = "0.01"
:param ${doc_author} project.doc_author = "project team"
:param ${doc_builder} project.doc_builder = "html"
"""

AUTHORS = '${doc_author}'
DEFAULT_SPHINX_BUILDER = '${doc_builder}'
PROJECT_NAME = '${name}'

__version__ = '${version}'
PROJECT_NAME = ""
SPHINX_DOC_AUTHOR = ""
SPHINX_DOC_BUILDER = ""
SPHINX_PROJECT_NAME = ""
SPHINX_PROJECT_VERSION = ""


@init
def initialize_sphinx_plugin(project):
project.build_depends_on("sphinx")
project.set_property_if_unset(
"sphinx_source_dir", SCAFFODING.DEFAULT_DOCS_DIRECTORY)
"sphinx_source_dir", SCAFFOLDING.DEFAULT_DOCS_DIRECTORY)
project.set_property_if_unset(
"sphinx_output_dir", DEFAULT_SPHINX_OUTPUT_DIR)
project.set_property_if_unset(
"sphinx_config_path", SCAFFODING.DEFAULT_DOCS_DIRECTORY)
"sphinx_config_path", SCAFFOLDING.DEFAULT_DOCS_DIRECTORY)
project.set_property_if_unset(
"sphinx_doc_author", SPHINX_DOC_AUTHOR)
project.set_property_if_unset(
"sphinx_doc_builder", SPHINX_DOC_BUILDER)
project.set_property_if_unset(
"sphinx_project_name", SPHINX_PROJECT_NAME)
project.set_property_if_unset(
"sphinx_project_version", SPHINX_PROJECT_VERSION)


@after("prepare")
Expand Down Expand Up @@ -124,9 +123,9 @@ def get_sphinx_quickstart_command(project):
:param -v: Version of project.
"""
options = ["-q",
"-p %s" % project.name,
"-a %s" % project.doc_author,
"-v %s" % project.version,
"-p %s" % project.get_property("sphinx_project_name"),
"-a %s" % project.get_property("sphinx_doc_author"),
"-v %s" % project.get_property("sphinx_project_version"),
"%s" % project.expand_path
(project.get_property("sphinx_source_dir"))]
return "sphinx-quickstart %s" % " ".join(options)
Expand All @@ -135,7 +134,7 @@ def get_sphinx_quickstart_command(project):
def get_sphinx_build_command(project):
"""Builds the sphinx-build command using properties.
"""
options = ["-b %s" % project.doc_builder,
options = ["-b %s" % project.get_property("sphinx_doc_builder"),
project.expand_path(project.get_property("sphinx_config_path")),
project.expand_path(project.get_property("sphinx_output_dir"))]
return "sphinx-build %s" % " ".join(options)
10 changes: 5 additions & 5 deletions src/unittest/python/plugins/python/sphinx_plugin_tests.py
Expand Up @@ -53,23 +53,23 @@ class SphinxBuildCommandTests(TestCase):

def test_should_generate_sphinx_build_command_per_project_properties(self):
project = Project('basedir')
setattr(project, 'doc_builder', 'html')

project.set_property("sphinx_config_path", "docs/")
project.set_property("sphinx_source_dir", "docs/")
project.set_property("sphinx_output_dir", "docs/_build/")
project.set_property("sphinx_doc_builder", 'JSONx')

sphinx_build_command = get_sphinx_build_command(project)

self.assertEqual(sphinx_build_command,
"sphinx-build -b html basedir/docs/ basedir/docs/_build/")
"sphinx-build -b JSONx basedir/docs/ basedir/docs/_build/")

def test_should_generate_sphinx_quickstart_command_with_project_properties(self):
project = Project('basedir')
setattr(project, 'doc_author', 'bar')
setattr(project, 'version', '3')
setattr(project, 'name', 'foo')

project.set_property("sphinx_doc_author", "bar")
project.set_property("sphinx_project_name", "foo")
project.set_property("sphinx_project_version", "3")
project.set_property("project.name", "foo")
project.set_property("project.version", "3")
project.set_property("sphinx_source_dir", "docs/")
Expand Down

2 comments on commit df9b85b

@mriehl
Copy link
Member

@mriehl mriehl commented on df9b85b Apr 19, 2015

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thx, great. One more thing we should do is set sensible defaults (doc builder could be html, doc author could be project author)

@locolupo
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mriehl good point, done

Please sign in to comment.