| 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
|
|
|