75 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
set -e
 | 
						|
 | 
						|
build="$PWD/website-build"
 | 
						|
usage="Builds eventlet.net website static pages into ${build}.
 | 
						|
Requires sphinx-build, git and Github account.
 | 
						|
 | 
						|
  --no-commit        Just build HTML, skip any git operations."
 | 
						|
 | 
						|
commit=1
 | 
						|
while [ -n "$1" ]; do
 | 
						|
    case $1 in
 | 
						|
    --no-commit)
 | 
						|
        commit=0
 | 
						|
        ;;
 | 
						|
    *)
 | 
						|
        echo "$usage" >&2
 | 
						|
        exit 1
 | 
						|
        ;;
 | 
						|
    esac
 | 
						|
	shift
 | 
						|
done
 | 
						|
 | 
						|
if ! which sphinx-build >/dev/null; then
 | 
						|
	echo "sphinx-build not found. Possible solution: pip install sphinx" >&2
 | 
						|
	echo "Links: http://sphinx-doc.org/" >&2
 | 
						|
	exit 1
 | 
						|
fi
 | 
						|
 | 
						|
if [ $commit -eq 1 ] && ! git status >/dev/null; then
 | 
						|
	echo "git not found. git and Github account are required to update online documentation." >&2
 | 
						|
	echo "Links: http://git-scm.com/ https://github.com/" >&2
 | 
						|
	exit 1
 | 
						|
fi
 | 
						|
 | 
						|
echo "1. clean"
 | 
						|
rm -rf "$build"
 | 
						|
mkdir -p "$build/doc"
 | 
						|
 | 
						|
echo "2. build static pages"
 | 
						|
cp doc/real_index.html "$build/index.html"
 | 
						|
cp NEWS doc/changelog.rst
 | 
						|
 | 
						|
# -b html -- builder, output mode
 | 
						|
# -d dir  -- path to doctrees cache
 | 
						|
# -n      -- nit-picky mode (kind of -Wall for gcc)
 | 
						|
# -W      -- turns warnings into errors
 | 
						|
# -q      -- quiet, emit only warnings and errors
 | 
						|
sphinx-build -b html -d "$build/tmp" -n -q "doc" "$build/doc"
 | 
						|
rm -rf "$build/tmp"
 | 
						|
rm -f "$build/doc/.buildinfo"
 | 
						|
rm -f "doc/changelog.rst"
 | 
						|
 | 
						|
if [ $commit -eq 1 ]; then
 | 
						|
    echo "3. Updating git branch gh-pages"
 | 
						|
    source_name=`git rev-parse --abbrev-ref HEAD`
 | 
						|
    source_id=`git rev-parse --short HEAD`
 | 
						|
    git branch --track gh-pages origin/gh-pages || true
 | 
						|
    git checkout gh-pages
 | 
						|
    git ls-files |grep -Ev '^.gitignore$' |xargs rm -f
 | 
						|
    rm -rf "doc"
 | 
						|
 | 
						|
    mv "$build"/* ./
 | 
						|
    touch ".nojekyll"
 | 
						|
    echo "eventlet.net" >"CNAME"
 | 
						|
    rmdir "$build"
 | 
						|
 | 
						|
    echo "4. Commit"
 | 
						|
    git add -A
 | 
						|
    git status
 | 
						|
 | 
						|
    read -p "Carefully read git status output above, press Enter to continue or Ctrl+C to abort"
 | 
						|
    git commit --edit -m "Website built from $source_name $source_id"
 | 
						|
fi
 |