#!python
"""Windows-specific part of the installation"""

import os, sys, shutil

def mkshortcut(target,description,link_file,*args,**kw):
    """make a shortcut if it doesn't exist, and register its creation"""
    
    create_shortcut(target, description, link_file,*args,**kw)
    file_created(link_file)

def install():
    """Routine to be run by the win32 installer with the -install switch."""

    from IPython.Release import version

    # Get some system constants
    prefix = sys.prefix
    python = prefix + r'\python.exe'
    # Lookup path to common startmenu ...
    ip_dir = get_special_folder_path('CSIDL_COMMON_PROGRAMS') + r'\IPython'
    
    # Some usability warnings at installation time.  I don't want them at the
    # top-level, so they don't appear if the user is uninstalling.
    try:
        import ctypes
    except ImportError:
        print ('To take full advantage of IPython, you need ctypes from:\n'
               'http://sourceforge.net/projects/ctypes')

    try:
        import win32con
    except ImportError:
        print ('To take full advantage of IPython, you need pywin32 from:\n'
               'http://starship.python.net/crew/mhammond/win32/Downloads.html')

    try:
        import readline
    except ImportError:
        print ('To take full advantage of IPython, you need readline from:\n'
               'http://sourceforge.net/projects/uncpythontools')

    ipybase = '"'+prefix+r'\scripts\ipython"'
    # Create IPython entry ...
    if not os.path.isdir(ip_dir):
        os.mkdir(ip_dir)
        directory_created(ip_dir)

    # Create program shortcuts ...
    f = ip_dir + r'\IPython.lnk'
    a = ipybase
    mkshortcut(python,'IPython',f,a)

    f = ip_dir + r'\pysh.lnk'
    a = ipybase+' -p sh'
    mkshortcut(python,'IPython command prompt mode',f,a)

    f = ip_dir + r'\scipy.lnk'
    a = ipybase+' -pylab -p scipy'
    mkshortcut(python,'IPython scipy profile',f,a)

    # Create documentation shortcuts ...    
    t = prefix + r'\share\doc\ipython\manual\ipython.pdf'
    f = ip_dir + r'\Manual in PDF.lnk'
    mkshortcut(t,r'IPython Manual - PDF-Format',f)

    t = prefix + r'\share\doc\ipython\manual\ipython.html'
    f = ip_dir + r'\Manual in HTML.lnk'
    mkshortcut(t,'IPython Manual - HTML-Format',f)

    # make ipython.py
    shutil.copy(prefix + r'\scripts\ipython', prefix + r'\scripts\ipython.py')
    
def remove():
    """Routine to be run by the win32 installer with the -remove switch."""
    pass

# main()
if len(sys.argv) > 1:
    if sys.argv[1] == '-install':
        install()
    elif sys.argv[1] == '-remove':
        remove()
    else:
        print "Script was called with option %s" % sys.argv[1]
