diff options
Diffstat (limited to 'pavement.py')
-rw-r--r-- | pavement.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/pavement.py b/pavement.py new file mode 100644 index 000000000..a671ade1a --- /dev/null +++ b/pavement.py @@ -0,0 +1,70 @@ +import os +import subprocess +try: + from hash import md5 +except ImportError: + import md5 + +import sphinx + +import distutils +import numpy.distutils + +try: + from paver.tasks import VERSION as _PVER + if not _PVER >= '1.0': + raise RuntimeError("paver version >= 1.0 required (was %s)" % _PVER) +except ImportError, e: + raise RuntimeError("paver version >= 1.0 required") + +import paver +import paver.doctools +import paver.path +from paver.easy import options, Bunch, task, needs, dry, sh, call_task +from paver.setuputils import setup + +# NOTES/Changelog stuff +RELEASE = 'doc/release/1.3.0-notes.rst' +LOG_START = 'tags/1.2.0' +LOG_END = 'master' + +def compute_md5(): + released = paver.path.path('installers').listdir() + checksums = [] + for f in released: + m = md5.md5(open(f, 'r').read()) + checksums.append('%s %s' % (m.hexdigest(), f)) + + return checksums + +def write_release_task(filename='NOTES.txt'): + source = paver.path.path(RELEASE) + target = paver.path.path(filename) + if target.exists(): + target.remove() + source.copy(target) + ftarget = open(str(target), 'a') + ftarget.writelines(""" +Checksums +========= + +""") + ftarget.writelines(['%s\n' % c for c in compute_md5()]) + +def write_log_task(filename='Changelog'): + st = subprocess.Popen( + ['git', 'svn', 'log', '%s..%s' % (LOG_START, LOG_END)], + stdout=subprocess.PIPE) + + out = st.communicate()[0] + a = open(filename, 'w') + a.writelines(out) + a.close() + +@task +def write_release(): + write_release_task() + +@task +def write_log(): + write_log_task() |