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
61 lines
3.0 KiB
Bash
Executable File
61 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Copyright 2003 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.
|
|
#
|
|
# Runs a file in $1 through a giant sed script, transforming normal
|
|
# C++ comments to Doxygen comments. The resultant file is placed in
|
|
# $2/$1, so $2 must be a subdirectory.
|
|
#
|
|
# Usage: scripts/doxify.sh filename destination_directory
|
|
|
|
set -u # exit the script if any variable is uninitialized
|
|
set -e # exit script if any command returns an error
|
|
|
|
filename=$1
|
|
destination_directory=$2
|
|
outfile=$destination_directory/$filename
|
|
|
|
mkdir -p "$(dirname $outfile)"
|
|
|
|
sed -r 's~/\*([^\*])~/\*\*\1~; # /* -> /** \
|
|
s~///*~///~; # // -> /// \
|
|
s~;[ ]*/\*\*([^<*]*)~; /\*\*<\1~; # /** -> /**< on right after code \
|
|
s~;[ ]*///*([^<])~; ///<\1~; # /// -> ///< on right after code \
|
|
s~,([ ]*)///*([^<])~,\1///<\2~; # /// -> ///< on right after enum \
|
|
s~([[:alnum:]][ ]*)///*([^<])~\1///<\2~; # /// -> ///< on right after enum \
|
|
s~DISALLOW_COPY_AND_ASSIGN\(.*\)\;~~; # /// -> ///< on right after code \
|
|
s~(///) *---+([^-].+[^-]) *---+~\1\2~; # /// ---- Bla ---- -> /// Bla
|
|
s~(///) *===+([^=].+[^=]) *===+~\1\2~; # /// ==== Bla ==== -> /// Bla
|
|
s~(///) *\*\*\*+([^\*].+[^\*]) *\*\*\*+~\1\2~; # /// **** Bla **** -> /// Bla
|
|
s~(///) *----*( *)~\1\2~; # /// -------- -> ///
|
|
s~(///) *====*( *)~\1\2~; # /// ======== -> ///
|
|
s~(///) *\*\*\*\**( *)~\1\2~; # /// ******** -> ///
|
|
s~(///) *\* \* \*( \*)* *~\1~; # /// * * * * * -> ///
|
|
s~(([^A-Z_])((TODO|FIXME)[^A-Z_].*))~\2 @todo \3~; # TODO* -> @todo TODO* \
|
|
s~(([^A-Z_])((BUG)[^A-Z_].*))~\2 @bug \3~; # BUG* -> @bug BUG* \
|
|
s~([ \t]*)ABSTRACT([ \t]*\;)~\1\=0\2~; # void f() ABSTRACT; -> void f() =0; \
|
|
s~DECLARE_string(.*)~DECLARE_STRING\1~; # /// -> ///< on right after code \
|
|
s~DECLARE_bool(.*)~DECLARE_BOOL\1~; # /// -> ///< on right after code \
|
|
s~DECLARE_int32(.*)~DECLARE_INT32\1~; # /// -> ///< on right after code \
|
|
s~DECLARE_uint32(.*)~DECLARE_UINT32\1~; # /// -> ///< on right after code \
|
|
s~DECLARE_int64(.*)~DECLARE_INT64\1~; # /// -> ///< on right after code \
|
|
s~DECLARE_uint64(.*)~DECLARE_UINT64\1~; # /// -> ///< on right after code \
|
|
s~/// *(Copyright(.*))~// \1~; # clutter \
|
|
s~/// *(All [rR]ights [rR]eserved(.*))~// \1~; # clutter \
|
|
s~/// *(Date: (.*))~/// @file~; # clutter \
|
|
s~/// *Author:(.*)~/// @file~; # /// Author -> /// @file \
|
|
s~/// *Author(.*)~/// @file~; # /// Author -> /// @file ' \
|
|
< $filename > $outfile
|