diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 00000000..e324eac9 --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1 @@ +/generated diff --git a/doc/support/compat.sh b/doc/support/compat.sh new file mode 100644 index 00000000..e7135239 --- /dev/null +++ b/doc/support/compat.sh @@ -0,0 +1,39 @@ +#!/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. + +if [[ "${BASH_SOURCE[0]}" = "${0}" ]]; then + echo "${0}: this file must be sourced, not run directly" >& 2 + exit 1 +fi + +# 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. +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 diff --git a/doc/support/generate.sh b/doc/support/generate.sh new file mode 100755 index 00000000..dcb74375 --- /dev/null +++ b/doc/support/generate.sh @@ -0,0 +1,72 @@ +#!/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 + +function maybe_mkdir() { + local dir="${1}" + if [[ ! -d "${dir}" ]]; then + mkdir "${dir}" + fi +} + +# Run from the Crashpad project root directory. +cd "$(dirname "${0}")/../.." + +source doc/support/compat.sh + +doc/support/generate_doxygen.sh +doc/support/generate_asciidoc.sh + +output_dir=doc/generated +maybe_mkdir "${output_dir}" + +for subdir in doc doxygen man ; do + output_subdir="${output_dir}/${subdir}" + maybe_mkdir "${output_subdir}" + rsync -Ilr --delete --exclude .git "out/doc/${subdir}/html/" \ + "${output_subdir}/" +done + +# Move doc/index.html to index.html, adjusting relative paths to other files in +# doc. +${sed_ext} -e 's%%%g' \ + < "${output_dir}/doc/index.html" > "${output_dir}/index.html" + +# Create man/index.html +cd "${output_dir}/man" +cat > index.html << __EOF__ + + +Crashpad Man Pages + +__EOF__ diff --git a/doc/support/generate_asciidoc.sh b/doc/support/generate_asciidoc.sh index b636fe70..54a57349 100755 --- a/doc/support/generate_asciidoc.sh +++ b/doc/support/generate_asciidoc.sh @@ -23,6 +23,8 @@ set -e # Run from the Crashpad project root directory. cd "$(dirname "${0}")/../.." +source doc/support/compat.sh + output_dir=out/doc rm -rf \ @@ -33,26 +35,6 @@ mkdir -p \ "${output_dir}/man/html" \ "${output_dir}/man/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)