notcurses/tools/rustdoc-update-gh-pages.sh

117 lines
2.2 KiB
Bash
Raw Normal View History

#!/bin/sh
#
# SCRIPT TO BUILD THE RUST DOCS FROM THE GITHUB REPO
#
# Make sure you have the notcurses dependencies installed,
# and your github credentials in order, so that you can push.
#
# This script:
# - clones the full notcurses repo inside $WORKING_DIR
# - compiles & installs notcurses inside $WORKING_DIR
# - compiles the rust documentation inside $WORKING_DIR
# - commits and pushes the new docs to the $DOCS_BRANCH branch
# - deletes $WORKING_DIR
#
# WARNING: This script:
# - Does NOT fetch the latest tag, but the master branch.
# - Does NOT check first the version in $DOCS_BRANCH, but commits always.
#
# This script is intended to be used just once per release,
# and immediately after the release is published.
#
# The decision to clone and compile everything from scratch has been made
# in order to not risk interfering with the actual working repository, since
# switching between branches can be very messy in certain situations.
#
set -e
WORKING_DIR=rustdoc-build
DOCS_BRANCH="gh-pages"
# 1. CLONE REPO & COMPILE NOTCURSES
#
# - contain everything in a subfolder
git clone git@github.com:dankamongmen/notcurses.git $WORKING_DIR
if [ $? -ne 0 ]; then
echo "ERROR cloning notcurses repo via SSH protocol."
exit
fi
cd $WORKING_DIR
rm -rf build
mkdir -p build
cd build
cmake -DCMAKE_INSTALL_PREFIX=./usr/ ..
if [ $? -ne 0 ]; then
echo "ERROR configuring notcurses with cmake."
exit
fi
make -j`nproc`
if [ $? -ne 0 ]; then
echo "ERROR compiling notcurses."
exit
fi
make install
if [ $? -ne 0 ]; then
echo "ERROR installing notcurses."
exit
fi
export PKG_CONFIG_PATH=`pwd`/usr/lib/pkgconfig
# 2. BUILD THE RUST DOCS
#
#
cd ../rust
unset CARGO_TARGET_DIR
cargo doc --no-deps
if [ $? -ne 0 ]; then
echo "ERROR building rust docs."
exit
fi
VERSION=`grep ^version Cargo.toml | cut -d'"' -f2`
# 3. UPDATE REPO
#
#
git checkout $DOCS_BRANCH
if [ $? -ne 0 ]; then
echo "ERROR switching to $DOCS_BRANCH branch."
exit
fi
cd ..
rm -rf rustdoc
mv rust/target/doc rustdoc
git add rustdoc
git commit -m "update rust docs to $VERSION"
if [ $? -ne 0 ]; then
echo "ERROR commiting version $VERSION."
exit
fi
git push
if [ $? -ne 0 ]; then
echo "ERROR pushing version $VERSION to $DOCS_BRANCH branch."
exit
fi
cd ..
rm -rf $WORKING_DIR
echo "Done!"