#!/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 output_dir=doc/generated maybe_mkdir "${output_dir}" maybe_mkdir "${output_dir}/doxygen" rsync -Ilr --delete --exclude .git "out/doc/doxygen/html/" \ "${output_dir}/doxygen" # Remove old things that used to be present rm -rf "${output_dir}/doc" rm -rf "${output_dir}/man" rm -f "${output_dir}/index.html" # Ensure a favicon exists at the root since the browser will always request it. cp doc/favicon.ico "${output_dir}/" # Create man/index.html. Do this in two steps so that the built-up list of man # pages can be sorted according to the basename, not the entire path. list_file=$(mktemp) for man_path in $(find . -name '*.md' | ${sed_ext} -e 's%^\./%%' | grep -Ev '^(README.md$|(third_party|doc)/)'); do # These should show up in all man pages, but probably not all together in any # other Markdown documents. if ! (grep -q '^## Name$' "${man_path}" && grep -q '^## Synopsis$' "${man_path}" && grep -q '^## Description$' "${man_path}"); then continue fi man_basename=$(${sed_ext} -e 's/\.md$//' <<< $(basename "${man_path}")) cat >> "${list_file}" << __EOF__ ${man_basename} __EOF__ done maybe_mkdir "${output_dir}/man" cd "${output_dir}/man" cat > index.html << __EOF__