77 lines
1.9 KiB
Bash
Executable file
77 lines
1.9 KiB
Bash
Executable file
#!/bin/bash
|
|
#mk_pydocs.sh
|
|
#
|
|
#This script creates new or updated browsable documentation from the Python
|
|
#docstrings in CryptoNAS. It must be run from the "trunk" directory.
|
|
#In addition, SVN must know about the "trunk/src" directory (i.e
|
|
#"trunk/src" or one of its parents must have been checked out previously).
|
|
|
|
|
|
set -e
|
|
|
|
##?? which version of epydoc is REALLY required?
|
|
|
|
PYTHONPATH="src"
|
|
|
|
##Define variables which name programs
|
|
EPYDOC=epydoc
|
|
RM="rm"
|
|
MV="mv"
|
|
MKDIR="mkdir"
|
|
TAR="tar"
|
|
|
|
PYDOC_ACTIONS="--html"
|
|
|
|
##Output directory (note that this appears to require an absolute path name)
|
|
DOCTREE="/home/jcrofts/src/pydoc/"
|
|
|
|
REVISION="`svn info src | grep -E 'Last Changed Rev: [[:digit:]]' | grep -o -E '[[:digit:]]+'`"
|
|
|
|
##Version string for html doc output
|
|
DOC_VSTRING="cnas-html_r${REVISION}"
|
|
|
|
##Name of temporary directory used for epydoc output
|
|
TEMP_HTML_PATH="${DOCTREE}cnas-html.temp"
|
|
##Final name of epydoc output directory
|
|
HTML_PATH="${DOCTREE}cnas-html"
|
|
|
|
##TODO: make sure sandbox is up-to-date
|
|
## Assume we are being run from the "trunk" directory
|
|
|
|
PYDOC_PROJNAME=CryptoNAS
|
|
PYDOC_URL="http://devel.cryptobox.org/"
|
|
|
|
PYDOC_OPTIONS="--show-sourcecode --verbose"
|
|
|
|
export PYTHONPATH=/home/jcrofts/src/trunk/src
|
|
|
|
|
|
##TODO: save build log somewhere...
|
|
#TODO: I bet there's a way to do this more cleanly using find -exec '{}' or something
|
|
## (or maybe not. Bash isn't Python.)
|
|
SOURCES=`find ${PYTHONPATH} -name '*.py'`
|
|
|
|
##Make a temporary directory in the doc tree
|
|
$MKDIR -p "${TEMP_HTML_PATH}"
|
|
|
|
##Generate pydocs in the temp directory
|
|
$EPYDOC $PYDOC_ACTIONS $PYDOC_OPTIONS --output=${TEMP_HTML_PATH} $SOURCES
|
|
|
|
##Remove the old docs directory
|
|
$RM -rf "${HTML_PATH}"
|
|
|
|
##Rename the new temp doc directory
|
|
$MV "${TEMP_HTML_PATH}" "${HTML_PATH}"
|
|
|
|
$RM -f ${DOCTREE}*.tgz
|
|
|
|
##Create compressed archive of newly-created docs
|
|
$TAR -czf "${DOCTREE}/${DOC_VSTRING}.tgz" "${HTML_PATH}"
|
|
|
|
##Not implemented yet (TODO)
|
|
#LFTP=
|
|
#LFTP_OPTIONS=
|
|
#LFTP_HOST=
|
|
#LFTP_DIR=
|
|
|
|
##If LFTP is enabled, perform upload to server
|