d55c2d7a2c
* many files had no license comments at all * some files had license comments suggesting that they weren't open source (like a terse "all rights reserved") when they actually are open source. * all our files are licensed under apache and should be marked as such
86 lines
2.6 KiB
Bash
Executable File
86 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Copyright 2010 Google Inc.
|
|
#
|
|
# 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.
|
|
#
|
|
# Processes the open-source header files using Doxygen. Each header
|
|
# must be preprocessed using doxify.sh to convert normal C++ comments
|
|
# into Doxygen Usage.
|
|
#
|
|
# comments: devel/doxify_tree.sh output_tarball
|
|
|
|
set -e # exit script if any command returns an error
|
|
set -u # exit the script if any variable is uninitialized
|
|
|
|
this_dir=$(dirname "${BASH_SOURCE[0]}")
|
|
cd "$this_dir/.."
|
|
src="$PWD"
|
|
cfg="$src/devel/doxygen.cfg"
|
|
|
|
if [ $# != 1 ]; then
|
|
echo Usage: $0 output_tarball
|
|
exit 1
|
|
fi
|
|
|
|
if ! which doxygen > /dev/null; then
|
|
echo "doxygen is not installed; run"
|
|
echo " sudo apt-get install doxygen"
|
|
exit 1
|
|
fi
|
|
|
|
# This generates a documentation tarball, suitable for copying to
|
|
# modpagespeed.com. This should be in $1
|
|
tarball="$(readlink -f $1)"
|
|
|
|
source "$src/net/instaweb/public/VERSION"
|
|
PSOL_VERSION="$MAJOR.$MINOR.$BUILD.$PATCH"
|
|
|
|
WORKDIR=$(mktemp -d)
|
|
trap "rm -r $WORKDIR" EXIT
|
|
|
|
OUTPUT_DIRECTORY="$WORKDIR/doxygen_out"
|
|
mkdir "$OUTPUT_DIRECTORY"
|
|
|
|
hacked_copies="$WORKDIR/hacked_copies"
|
|
mkdir "$hacked_copies"
|
|
|
|
echo Preprocessing header files to turn normal C++ comments into Doxygen-style
|
|
echo comments....
|
|
find net/ pagespeed/ -name "*.h" -exec "$src/devel/doxify.sh" {} \
|
|
"$hacked_copies" \;
|
|
|
|
# These variables are referenced in doxygen.cfg, so export them before running
|
|
# doxygen.
|
|
export PSOL_VERSION
|
|
export OUTPUT_DIRECTORY
|
|
|
|
log_file=$OUTPUT_DIRECTORY/doxygen.log
|
|
cd $hacked_copies
|
|
doxygen $cfg 2> $log_file
|
|
|
|
# Doxygen produces a large number of warnings about undocumented classes. At
|
|
# some point we should fix all these but this is going to take a while as there
|
|
# are 12431 as of 2016-11-18.
|
|
#
|
|
# These will reference files that we have hacked in this script, and using Emacs
|
|
# to navigate to these errors will get you to files you should never edit.
|
|
# Strip off the prefix so we'll print files with their source of truth.
|
|
grep hacked_copies $log_file | sed -e s@$hacked_copies/@@g
|
|
|
|
# TODO(jmarantz): walk through files in $OUTPUT_DIRECTORY/html and see whether
|
|
# there are changes to the corresponding files in the documentation.
|
|
cd $OUTPUT_DIRECTORY
|
|
tar czf $tarball .
|
|
ls -l $tarball
|