2015-03-18 17:10:12 -04:00
|
|
|
#!/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.
|
2015-04-01 12:39:53 -04:00
|
|
|
cd "$(dirname "${0}")/../.."
|
2015-03-18 17:10:12 -04:00
|
|
|
|
2015-10-08 14:38:10 -04:00
|
|
|
source doc/support/compat.sh
|
|
|
|
|
2015-04-01 12:39:53 -04:00
|
|
|
output_dir=out/doc
|
2015-03-18 17:10:12 -04:00
|
|
|
|
2015-04-01 12:39:53 -04:00
|
|
|
rm -rf \
|
|
|
|
"${output_dir}/doc" \
|
2015-03-18 17:10:12 -04:00
|
|
|
"${output_dir}/man"
|
2015-04-01 12:39:53 -04:00
|
|
|
mkdir -p \
|
|
|
|
"${output_dir}/doc/html" \
|
|
|
|
"${output_dir}/man/html" \
|
|
|
|
"${output_dir}/man/man"
|
2015-03-18 17:10:12 -04:00
|
|
|
|
|
|
|
# Get the version from package.h.
|
|
|
|
version=$(${sed_ext} -n -e 's/^#define PACKAGE_VERSION "(.*)"$/\1/p' package.h)
|
|
|
|
|
2015-04-01 12:39:53 -04:00
|
|
|
generate() {
|
|
|
|
input="$1"
|
|
|
|
type="$2"
|
|
|
|
|
|
|
|
case "${type}" in
|
|
|
|
doc)
|
|
|
|
doctype="article"
|
|
|
|
;;
|
|
|
|
man)
|
|
|
|
doctype="manpage"
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
echo "${0}: unknown type ${type}" >& 2
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2015-03-18 17:10:12 -04:00
|
|
|
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" \
|
2015-04-01 12:39:53 -04:00
|
|
|
--attribute git_date="${git_date}" \
|
|
|
|
--conf-file doc/support/asciidoc.conf \
|
|
|
|
--doctype "${doctype}" \
|
2015-03-18 17:10:12 -04:00
|
|
|
--backend html5 \
|
2015-04-01 12:39:53 -04:00
|
|
|
--attribute stylesheet="${PWD}/doc/support/asciidoc.css" \
|
|
|
|
--out-file "${output_dir}/${type}/html/${base}.html" \
|
2015-03-18 17:10:12 -04:00
|
|
|
"${input}"
|
|
|
|
|
2015-04-01 12:39:53 -04:00
|
|
|
if [[ "${type}" = "man" ]]; then
|
|
|
|
# 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 git_date="${git_date}" \
|
|
|
|
--asciidoc-opts=--conf-file=doc/support/asciidoc.conf \
|
|
|
|
--doctype "${doctype}" \
|
|
|
|
--format manpage \
|
|
|
|
--destination-dir "${output_dir}/${type}/man" \
|
|
|
|
"${input}"
|
|
|
|
fi
|
2015-03-18 17:10:12 -04:00
|
|
|
|
|
|
|
# For PDF output, use an a2x command like the one above, with these options:
|
2015-04-01 12:39:53 -04:00
|
|
|
# --format pdf --fop --destination-dir "${output_dir}/${type}/pdf"
|
|
|
|
}
|
|
|
|
|
|
|
|
for input in \
|
|
|
|
doc/*.ad; do
|
|
|
|
generate "${input}" "doc"
|
|
|
|
done
|
|
|
|
|
|
|
|
for input in \
|
2015-09-03 13:31:19 -07:00
|
|
|
handler/crashpad_handler.ad \
|
2015-04-01 12:39:53 -04:00
|
|
|
tools/*.ad \
|
|
|
|
tools/mac/*.ad; do
|
|
|
|
generate "${input}" "man"
|
2015-03-18 17:10:12 -04:00
|
|
|
done
|