From 8fb0f25977da5726db9b0edf3fbae3d0e8906743 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Dahlgren?= Date: Fri, 14 Oct 2016 18:04:04 +0200 Subject: [PATCH] pythonhosted.org no longer accepts uploads --- README.rst | 2 +- scripts/update-gh-pages.sh | 72 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 1 deletion(-) create mode 100755 scripts/update-gh-pages.sh diff --git a/README.rst b/README.rst index f73c2aa9..20abbe2b 100644 --- a/README.rst +++ b/README.rst @@ -40,7 +40,7 @@ callback for calculating the jacobian is provided automatically by pyodesys. Documentation ------------- Autogenerated API documentation for latest stable release is found here: -``_ +``_ (and the development version for the current master branch are found here: ``_). diff --git a/scripts/update-gh-pages.sh b/scripts/update-gh-pages.sh new file mode 100755 index 00000000..fc9563e9 --- /dev/null +++ b/scripts/update-gh-pages.sh @@ -0,0 +1,72 @@ +#!/bin/bash -x +# +# Usage: +# +# $ ./scripts/update-gh-pages.sh v0.6.0 origin +# + +tag=${1:-master} +remote=${2:-origin} + +ori_branch=$(git rev-parse --symbolic-full-name --abbrev-ref HEAD) +tmpdir=$(mktemp -d) +cleanup() { + rm -r $tmpdir +} +trap cleanup INT TERM + +cp -r doc/_build/html/ $tmpdir +git ls-files --others | tar cf $tmpdir/untracked.tar -T - +if [[ -d .gh-pages-skeleton ]]; then + cp -r .gh-pages-skeleton $tmpdir +fi + +git checkout gh-pages +if [[ $? -ne 0 ]]; then + git checkout --orphan gh-pages + if [[ $? -ne 0 ]]; then + >&2 echo "Failed to switch to 'gh-pages' branch." + cleanup + exit 1 + fi + preexisting=0 +else + preexisting=1 +fi + +if [[ $preexisting == 1 ]]; then + while [[ "$(git log -1 --pretty=%B)" == Volatile* ]]; do + # overwrite previous docs + git reset --hard HEAD~1 + done +fi + +shopt -s extglob +git clean -xfd +if [[ $preexisting == 1 ]]; then + git rm -rf !(v*) > /dev/null +fi +cp -r $tmpdir/html/ $tag +if [[ -d $tmpdir/.gh-pages-skeleton ]]; then + cp -r $tmpdir/.gh-pages-skeleton/. . +fi +if [[ "$tag" == v* ]]; then + ln -s $tag latest + commit_msg="Release docs for $tag" +else + if [[ $preexisting == 1 ]]; then + commit_msg="Volatile ($tag) docs" + else + commit_msg="Initial commit" + fi +fi +git add -f . >/dev/null +git commit -m "$commit_msg" +if [[ $preexisting == 1 ]]; then + git push -f $remote gh-pages +else + git push --set-upstream $remote gh-pages +fi +git checkout $ori_branch +tar xf $tmpdir/untracked.tar +cleanup