diff options
-rw-r--r-- | docs/en/rst/conf.py | 40 | ||||
-rw-r--r-- | docs/en/rst/extensions/.gitignore | 6 | ||||
-rwxr-xr-x | docs/makedocs.pl | 27 |
3 files changed, 46 insertions, 27 deletions
diff --git a/docs/en/rst/conf.py b/docs/en/rst/conf.py index b371d8393..c8be24e49 100644 --- a/docs/en/rst/conf.py +++ b/docs/en/rst/conf.py @@ -12,6 +12,8 @@ # serve to show the default. import sys, os, re +import os.path +import shutil # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the @@ -384,3 +386,41 @@ pdf_fit_background_mode = 'scale' todo_include_todos = True extlinks = {'bug': ('https://bugzilla.mozilla.org/show_bug.cgi?id=%s', 'bug ')} + +# -- Assemble extension documentation ------------------------------------------ + +# os.getcwd() is docs/$lang/rst +lang = os.path.basename(os.path.dirname(os.getcwd())) + +# This is technically defined in Bugzilla/Constants.pm in Perl, but it's +# unlikely to change if we use a relative path. +ext_dir = "../../../extensions" + +# Still, check just in case, so if it ever changes, we know +if (os.path.isdir(ext_dir)): + # Clear out old extensions docs + for dir in os.listdir("extensions"): + shutil.rmtree(os.path.join("extensions", dir)) + + # Copy in new copies + for ext_name in os.listdir(ext_dir): + ext_path = os.path.join(ext_dir, ext_name) + # Ignore files in the extensions/ directory (e.g. create.pl) + if not os.path.isdir(ext_path): + continue + + # Ignore disabled extensions + if os.path.isfile(os.path.join(ext_path, "disabled")): + continue + + src = os.path.join(ext_path, "docs", lang, "rst") + + # Ignore extensions without rst docs in this language + if not os.path.isdir(src): + continue + + dst = os.path.join("extensions", ext_name) + + shutil.copytree(src, dst) +else: + print "Warning: Bugzilla extension directory not found: " + ext_dir diff --git a/docs/en/rst/extensions/.gitignore b/docs/en/rst/extensions/.gitignore new file mode 100644 index 000000000..2bf521489 --- /dev/null +++ b/docs/en/rst/extensions/.gitignore @@ -0,0 +1,6 @@ +# Git doesn't like having empty directories in the repo. +# So we have this file. +# It says to ignore everything in this directory. +* +# Except this file, of course. +!.gitignore diff --git a/docs/makedocs.pl b/docs/makedocs.pl index 6f353dc6d..26543bebd 100755 --- a/docs/makedocs.pl +++ b/docs/makedocs.pl @@ -34,7 +34,6 @@ use lib qw(.. ../lib lib); use Cwd; use File::Copy::Recursive qw(rcopy); -use File::Find; use File::Path qw(rmtree); use File::Which qw(which); use Pod::Simple; @@ -116,32 +115,6 @@ foreach my $lang (@langs) { next if grep { $_ eq '--pod-only' } @ARGV; - chdir $docparent; - - # Generate extension documentation, both normal and API - my $ext_dir = bz_locations()->{'extensionsdir'}; - my @ext_paths = grep { $_ !~ /\/create\.pl$/ && ! -e "$_/disabled" } - glob("$ext_dir/*"); - my %extensions; - foreach my $item (@ext_paths) { - my $basename = basename($item); - if (-d "$item/docs/$lang/rst") { - $extensions{$basename} = "$item/docs/$lang/rst"; - } - } - - # Collect up local extension documentation into the extensions/ dir. - rmtree("$lang/rst/extensions", 0, 1); - - foreach my $ext_name (keys %extensions) { - my $src = $extensions{$ext_name} . "/*"; - my $dst = "$docparent/$lang/rst/extensions/$ext_name"; - mkdir($dst) unless -d $dst; - rcopy($src, $dst); - } - - chdir "$docparent/$lang"; - MakeDocs('HTML', 'html'); MakeDocs('TXT', 'text'); |