bordercastle/bin/bordercastle-javadoc.sh

95 lines
2.8 KiB
Bash
Executable file

#!/bin/bash
## -- FILE ------------------------------------------------------------------
## name : bordercastle-javadoc.sh
## project : BoarderZone: BorderCastle
## created : Leon Poyyayil - 2020-05-01
## language : Linux shell script
## environment: GNU bash
## copyright : (c) 1990-2025 by Leon Poyyayil (private), Switzerland
## license : Bouncy Castle License. see LICENSE
## --------------------------------------------------------------------------
SCRIPT_DIR="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
MAIN_DIR=$(readlink -f $( dirname "$SCRIPT_DIR") )
pushd $MAIN_DIR > /dev/null
. bordercastle.conf
pushd $DIST_DIR > /dev/null
echo "- collecting source code"
mkdir -p tmp/src
cd tmp/src
for TARGET in light mail pg pkix prov tls util
do
echo " - boca-$TARGET"
cp -r ../../../boca-$TARGET/src/main/java/* .
cp -r ../../../boca-$TARGET/src/main/javadoc/* .
done
echo "- removing unused/unneeded classes"
rm -rf org/bordercastle/cert/dane/fetcher
rm -rf org/bordercastle/crypto/examples
rm -rf org/bordercastle/mail/smime/examples
rm -rf org/bordercastle/openpgp/examples
rm org/bordercastle/jce/provider/X509LDAPCertStoreSpi.java
rm org/bordercastle/jce/provider/X509StoreLDAP*.java
rm -rf org/bordercastle/util/test
rm org/bordercastle/x509/util/LDAPStoreHelper.java
cd ..
# avoid javadoc warning: Multiple sources of package comments found for package "org.bordercastle.xxx"
echo "- removing duplicate package info sources"
for PKG_INFO in $(find src -name package-info.java)
do
PKG_DIR=$(dirname $PKG_INFO)
PKG_HTML="$PKG_DIR/package.html"
if [[ -f "$PKG_HTML" ]]; then
rm "$PKG_HTML"
fi
done
echo "- preparing classpath"
CLASSPATH=$JAVA_CLASSPATH
echo "- preparing output directory"
mkdir api
echo "- preparing javadoc options"
TITLE="BorderCastle $BC_VER"
echo "-sourcepath src" > opts.txt
echo "-d api" >> opts.txt
echo "-classpath $CLASSPATH" >> opts.txt
echo "-protected" >> opts.txt
echo "-splitindex" >> opts.txt
echo "-nosince" >> opts.txt
echo "-notimestamp" >> opts.txt
echo "-notree" >> opts.txt
echo "-nohelp" >> opts.txt
echo "-nodeprecatedlist" >> opts.txt
echo "-encoding UTF8" >> opts.txt
echo "-quiet" >> opts.txt
echo "-Xdoclint:-missing" >> opts.txt
echo "-Xdoclint:-html" >> opts.txt
echo "-windowtitle '$TITLE'" >> opts.txt
echo "-header '$TITLE'" >> opts.txt
echo "-footer '$TITLE'" >> opts.txt
echo "- listing source code to document"
find src -name *.java >> opts.txt
echo "- generating javadoc"
javadoc @opts.txt
echo "- packing javadoc"
cd api
jar cfM ../../bordercastle-jce-javadoc.zip *
cd ..
echo "- cleaning up"
cd ..
rm -rf tmp
popd > /dev/null
popd > /dev/null
## -- EOF -------------------------------------------------------------------