#!/usr/bin/env python
#
# DrPython post installation script
#
# added by Christoph Zwerschke 2005-06-26
#

"""DrPython postinstallation  script"""

import sys, os

if sys.platform.startswith('win'):
	platform = 'win'
else:
	platform = 'other'

from distutils.sysconfig import get_python_lib
python_lib = get_python_lib()

drpython_base = os.path.join(python_lib, 'drpython')
drpython_prg = os.path.join(drpython_base, 'drpython.pyw')
drpython_docs = os.path.join(drpython_base, 'documentation')
drpython_help = os.path.join(drpython_docs, 'help.html')

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

	try:
		import wx
		wx = True
	except ImportError:
		print 'DrPython needs wxPython (http://www.wxpython.org)'
		wx = False

	if platform == 'win': # Windows specific part of installation

		if wx:
			# here, you could add a wx dialog asking the user:
			# - shall desktop shortcuts be created?
			# - shall start menu shortcuts be created?
			# - user or system wide installation?
			#   (i.e use personal desktop or common desktop, etc.)
			# - take over old user profile? (in case of update, default yes)
			# - associate .py/.pyw extension with DrPython automatically?
			# - start DrPython automatically after installation?
			# - show release information after installation?
			# - some fundamental preferences to be preconfigured?
			#   (default language, like tabs or no tabs etc.)
			pass # not yet implemented

		# for the time being, we only add desktop shortcuts (if they do not already exist)

		def create_shortcut_safe(target, description, filename, *args, **kw):
			"""Create and register a shortcut only if it doesn't already exist."""
			if not os.path.isfile(filename):
				create_shortcut(target, description, filename, *args, **kw)
				file_created(filename)

		desktop = get_special_folder_path('CSIDL_DESKTOPDIRECTORY')

		create_shortcut_safe(drpython_prg,
			'DrPython Editor/Environment', desktop + '\\DrPython.lnk')
		create_shortcut_safe(drpython_help,
			'DrPython Online Help', desktop + '\\DrPython Help.lnk')

def remove():
	"""Routine to be run with the -remove switch."""
	pass

if __name__ == '__main__':
	if len(sys.argv) > 1:
		if sys.argv[1] == '-install':
			install()
		elif sys.argv[1] == '-remove':
			remove()


syntax highlighted by Code2HTML, v. 0.9.1