Skip to content
This repository has been archived by the owner on Feb 26, 2022. It is now read-only.

Bug 801230 - Add a cfx sdocs option to override the version #604

Merged
merged 1 commit into from Oct 15, 2012
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
11 changes: 10 additions & 1 deletion python-lib/cuddlefish/__init__.py
Expand Up @@ -194,6 +194,11 @@
metavar=None,
default=False,
cmds=['test', 'testex', 'testpkgs'])),
(("", "--override-version",), dict(dest="override_version",
help="Pass in a version string to use in generated docs",
metavar=None,
default=False,
cmds=['sdocs'])),
]
),

Expand Down Expand Up @@ -584,7 +589,11 @@ def run(arguments=sys.argv[1:], target_cfg=None, pkg_cfg=None,
return
elif command == "sdocs":
from cuddlefish.docs import generate
filename = generate.generate_static_docs(env_root)
filename=""
if options.override_version:
filename = generate.generate_static_docs(env_root, override_version=options.override_version)
else:
filename = generate.generate_static_docs(env_root)
print >>stdout, "Wrote %s." % filename
return
elif command not in ["xpi", "test", "run"]:
Expand Down
19 changes: 10 additions & 9 deletions python-lib/cuddlefish/docs/generate.py
Expand Up @@ -9,6 +9,7 @@
import tarfile
import StringIO

from cuddlefish._version import get_versions
from cuddlefish.docs import apiparser
from cuddlefish.docs import apirenderer
from cuddlefish.docs import webdocs
Expand Down Expand Up @@ -43,19 +44,19 @@ def clean_generated_docs(docs_dir):
if os.path.exists(api_doc_dir):
shutil.rmtree(api_doc_dir)

def generate_static_docs(env_root):
def generate_static_docs(env_root, override_version=get_versions()["version"]):
clean_generated_docs(get_sdk_docs_path(env_root))
generate_docs(env_root, stdout=StringIO.StringIO())
generate_docs(env_root, override_version, stdout=StringIO.StringIO())
tgz = tarfile.open(TGZ_FILENAME, 'w:gz')
tgz.add(get_sdk_docs_path(env_root), "doc")
tgz.close()
return TGZ_FILENAME

def generate_local_docs(env_root):
return generate_docs(env_root, get_base_url(env_root))
return generate_docs(env_root, get_versions()["version"], get_base_url(env_root))

def generate_named_file(env_root, filename_and_path):
web_docs = webdocs.WebDocs(env_root, get_base_url(env_root))
web_docs = webdocs.WebDocs(env_root, get_versions()["version"], get_base_url(env_root))
abs_path = os.path.abspath(filename_and_path)
path, filename = os.path.split(abs_path)
if abs_path.startswith(os.path.join(env_root, 'doc', 'module-source')):
Expand All @@ -69,12 +70,12 @@ def generate_named_file(env_root, filename_and_path):
else:
raise ValueError("Not a valid path to a documentation file")

def generate_docs(env_root, base_url=None, stdout=sys.stdout):
def generate_docs(env_root, version=get_versions()["version"], base_url=None, stdout=sys.stdout):
docs_dir = get_sdk_docs_path(env_root)
# if the generated docs don't exist, generate everything
if not os.path.exists(os.path.join(docs_dir, "dev-guide")):
print >>stdout, "Generating documentation..."
generate_docs_from_scratch(env_root, base_url)
generate_docs_from_scratch(env_root, version, base_url)
current_status = calculate_current_status(env_root)
open(os.path.join(docs_dir, DIGEST), "w").write(current_status)
else:
Expand All @@ -86,7 +87,7 @@ def generate_docs(env_root, base_url=None, stdout=sys.stdout):
# if the docs are not up to date, generate everything
if not docs_are_up_to_date:
print >>stdout, "Regenerating documentation..."
generate_docs_from_scratch(env_root, base_url)
generate_docs_from_scratch(env_root, version, base_url)
open(os.path.join(docs_dir, DIGEST), "w").write(current_status)
return get_base_url(env_root) + "index.html"

Expand Down Expand Up @@ -114,9 +115,9 @@ def calculate_current_status(env_root):
current_status.update(str(os.path.getmtime(os.path.join(dirpath, base_html_file))))
return current_status.digest()

def generate_docs_from_scratch(env_root, base_url):
def generate_docs_from_scratch(env_root, version, base_url):
docs_dir = get_sdk_docs_path(env_root)
web_docs = webdocs.WebDocs(env_root, base_url)
web_docs = webdocs.WebDocs(env_root, version, base_url)
must_rewrite_links = True
if base_url:
must_rewrite_links = False
Expand Down
6 changes: 3 additions & 3 deletions python-lib/cuddlefish/docs/webdocs.py
Expand Up @@ -32,8 +32,9 @@ def insert_after(target, insertion_point_id, text_to_insert):
return target[:insertion_point] + text_to_insert + target[insertion_point:]

class WebDocs(object):
def __init__(self, root, base_url = None):
def __init__(self, root, version=get_versions()["version"], base_url = None):
self.root = root
self.version = version
self.pkg_cfg = packaging.build_pkg_cfg(root)
self.packages_json = packaging.build_pkg_index(self.pkg_cfg)
self.base_page = self._create_base_page(root, base_url)
Expand Down Expand Up @@ -69,8 +70,7 @@ def _create_base_page(self, root, base_url):
if base_url:
base_tag = 'href="' + base_url + '"'
base_page = insert_after(base_page, BASE_URL_INSERTION_POINT, base_tag)
sdk_version = get_versions()["version"]
base_page = insert_after(base_page, VERSION_INSERTION_POINT, "Version " + sdk_version)
base_page = insert_after(base_page, VERSION_INSERTION_POINT, "Version " + self.version)
module_list = get_module_list(os.sep.join([root, "doc", "module-source"]))
high_level_module_list = [module_info for module_info in module_list if module_info.level() == "high"]
high_level_module_text = self._make_module_text(high_level_module_list)
Expand Down