You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
2.7 KiB
Bash
101 lines
2.7 KiB
Bash
#!/bin/bash
|
|
|
|
# Documentation build directory, relative to script directory
|
|
DOCDIR=gh-pages
|
|
|
|
# Extract version from header
|
|
if [[ $(grep LIBMSEED_VERSION ../libmseed.h) =~ LIBMSEED_VERSION[[:space:]]+\"(.*)\"[[:space:]]* ]]; then
|
|
PROJECT_VERSION=${BASH_REMATCH[1]}
|
|
else
|
|
echo "WARNING: Cannot extract version"
|
|
fi
|
|
|
|
# Generate year and date strings
|
|
CURRENT_YEAR=$(date -u +%Y)
|
|
CURRENT_DATE=$(date -u +%Y-%m-%d)
|
|
|
|
# Check for command line options
|
|
while getopts ":YNP" o; do
|
|
case "${o}" in
|
|
Y)
|
|
PUSHYES=Y
|
|
;;
|
|
N)
|
|
PUSHYES=N
|
|
;;
|
|
P)
|
|
BUILDPDF=Y
|
|
;;
|
|
*)
|
|
echo "Usage: $0 [-Y] [-N] [-P]" 1>&2;
|
|
exit 1;
|
|
;;
|
|
esac
|
|
done
|
|
shift $((OPTIND-1))
|
|
|
|
# Build extra options for injection into config
|
|
DOXYGENCONFIG+="PROJECT_NUMBER=${PROJECT_VERSION}\n"
|
|
DOXYGENCONFIG+="ALIASES+=currentyear='${CURRENT_YEAR}'\n"
|
|
DOXYGENCONFIG+="ALIASES+=currentdate='${CURRENT_DATE}'\n"
|
|
|
|
if [[ "$BUILDPDF" == "Y" ]]; then
|
|
DOXYGENCONFIG+="GENERATE_LATEX=YES\n"
|
|
fi
|
|
|
|
# Documentation build command, injecting current project version
|
|
DOCBUILD="(cat Doxyfile; echo -e '${DOXYGENCONFIG}') | doxygen -"
|
|
|
|
# Change to working directory, aka base directory of script
|
|
BASEDIR=$(dirname $0)
|
|
cd $BASEDIR || { echo "Cannot change-directory to $BASEDIR, exiting"; exit 1; }
|
|
|
|
# Make clean gh-pages directory
|
|
rm -rf $DOCDIR
|
|
mkdir $DOCDIR || { echo "Cannot create directory '$DOCDIR', exiting"; exit 1; }
|
|
|
|
# Build docs
|
|
echo "Building docs"
|
|
eval $DOCBUILD || { echo "Error running '$DOCBUILD', exiting"; exit 1; }
|
|
|
|
# Build PDF and copy to current directory
|
|
if [[ "$BUILDPDF" == "Y" ]]; then
|
|
if [[ -d latex ]]; then
|
|
echo "Building PDF"
|
|
BUILDPDF=$(cd latex; make pdf 2>&1)
|
|
cp latex/refman.pdf libmseed.pdf
|
|
else
|
|
echo "WARNING: Cannot build PDF, no source latex directory"
|
|
fi
|
|
fi
|
|
|
|
GITREMOTE=$(git config --get remote.origin.url)
|
|
|
|
# Exit if already instructed to not push
|
|
if [[ "$PUSHYES" == "N" ]]; then
|
|
echo "Exiting without pushing to remote"
|
|
exit 0
|
|
fi
|
|
|
|
# Unless pushing already acknowledged ask if docs should be pushed
|
|
if [[ "$PUSHYES" != "Y" ]]; then
|
|
read -p "Push documentation to gh-pages branch of $GITREMOTE (y/N)? " PUSHYES
|
|
|
|
if [[ "$PUSHYES" != "Y" && "$PUSHYES" != "y" ]]; then
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
cd $DOCDIR || { echo "Cannot change-directory to $DOCDIR, exiting"; exit 1; }
|
|
|
|
# Init repo, add & commit files, add remote origin
|
|
git init
|
|
touch .nojekyll
|
|
git add .
|
|
git commit -m 'committing documentation'
|
|
|
|
git remote add origin $GITREMOTE
|
|
|
|
echo "Pushing contents of $BASEDIR/$DOCDIR to $GITREMOTE branch gh-pages"
|
|
git push --quiet --force origin main:gh-pages
|