Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2271)

Unified Diff: doc/generate_asciidoc.sh

Issue 1009223003: doc: Add documentation-generating scripts to the Crashpad tree (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: Process crashpad_handler too Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « doc/crashpad.doxy.h ('k') | doc/generate_doxygen.sh » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: doc/generate_asciidoc.sh
diff --git a/doc/generate_asciidoc.sh b/doc/generate_asciidoc.sh
new file mode 100755
index 0000000000000000000000000000000000000000..55113b654bcc9f7327dd092084cfe4414e229510
--- /dev/null
+++ b/doc/generate_asciidoc.sh
@@ -0,0 +1,98 @@
+#!/bin/bash
+
+# Copyright 2015 The Crashpad Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -e
+
+# Generating AsciiDoc documentation requires AsciiDoc,
+# http://www.methods.co.nz/asciidoc/. For “man” and PDF output, a DocBook
+# toolchain including docbook-xml and docbook-xsl is also required.
+
+# Run from the Crashpad project root directory.
+cd "$(dirname "${0}")/.."
+
+output_dir=out/doc/man
+
+rm -rf "${output_dir}"
+mkdir -p \
+ "${output_dir}/html" \
+ "${output_dir}/man"
+
+# Some extensions of command-line tools behave differently on different systems.
+# $sed_ext should be a sed invocation that enables extended regular expressions.
+# $date_time_t should be a date invocation that causes it to print the date and
+# time corresponding to a time_t string that immediately follows it.
+uname_s="$(uname -s)"
+case "${uname_s}" in
+ Darwin)
+ sed_ext="sed -E"
+ date_time_t="date -r"
+ ;;
+ Linux)
+ sed_ext="sed -r"
+ date_time_t="date -d@"
+ ;;
+ *)
+ echo "${0}: unknown operating system" >& 2
+ exit 1
+ ;;
+esac
+
+# Get the version from package.h.
+version=$(${sed_ext} -n -e 's/^#define PACKAGE_VERSION "(.*)"$/\1/p' package.h)
+
+for input in \
+ handler/mac/crashpad_handler.ad \
+ tools/*.ad \
+ tools/mac/*.ad; do
+ echo "${input}"
+
+ base=$(${sed_ext} -e 's%^.*/([^/]+)\.ad$%\1%' <<< "${input}")
+
+ # Get the last-modified date of $input according to Git, in UTC.
+ git_time_t="$(git log -1 --format=%at "${input}")"
+ git_date="$(LC_ALL=C ${date_time_t}"${git_time_t}" -u '+%B %-d, %Y')"
+
+ # Create HTML output.
+ asciidoc \
+ --attribute mansource=Crashpad \
+ --attribute manversion="${version}" \
+ --attribute manmanual="Crashpad Manual" \
+ --attribute revdate="${git_date}" \
+ --conf-file doc/asciidoc.conf \
+ --doctype manpage \
+ --backend html5 \
+ --attribute stylesheet="${PWD}/doc/asciidoc.css" \
+ --out-file "${output_dir}/html/${base}.html" \
+ "${input}"
+
+ # Create “man” output.
+ #
+ # AsciiDoc 8.6.9 produces harmless incorrect warnings each time this is run:
+ # “a2x: WARNING: --destination-dir option is only applicable to HTML based
+ # outputs”. https://github.com/asciidoc/asciidoc/issues/44
+ a2x \
+ --attribute mansource=Crashpad \
+ --attribute manversion="${version}" \
+ --attribute manmanual="Crashpad Manual" \
+ --attribute revdate="${git_date}" \
+ --doctype manpage \
+ --format manpage \
+ --destination-dir "${output_dir}/man" \
+ "${input}"
+
+ # For PDF output, use an a2x command like the one above, with these options:
+ # --format pdf --fop --destination-dir "${output_dir}/pdf"
+done
« no previous file with comments | « doc/crashpad.doxy.h ('k') | doc/generate_doxygen.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698