#!/usr/bin/env python
"""IPython release build script.
"""
from toollib import *

# Get main ipython dir, this will raise if it doesn't pass some checks
ipdir = get_ipdir()
cd(ipdir)

# Load release info
execfile(pjoin('IPython','Release.py'))

# Check that everything compiles
compile_tree()

# Cleanup
for d in ['build','dist',pjoin('docs','build'),pjoin('docs','dist')]:
    if os.path.isdir(d):
        remove_tree(d)

# Build source and binary distros
c('./setup.py sdist --formats=gztar')

# Build version-specific RPMs, where we must use the --python option to ensure
# that the resulting RPM is really built with the requested python version (so
# things go to lib/python2.X/...)
c("python2.5 ./setup.py bdist_rpm --binary-only --release=py25 "
  "--python=/usr/bin/python2.5")
c("python2.6 ./setup.py bdist_rpm --binary-only --release=py26 "
  "--python=/usr/bin/python2.6")

# Build eggs
c('python2.5 ./setupegg.py bdist_egg')
c('python2.6 ./setupegg.py bdist_egg')

# Call the windows build separately, so that the extra Windows scripts don't
# get pulled into Unix builds (setup.py has code which checks for
# bdist_wininst)
c("python setup.py bdist_wininst --install-script=ipython_win_post_install.py")

# Change name so retarded Vista runs the installer correctly
c("rename 's/linux-i686/win32-setup/' dist/*.exe")
