File: install_shortcuts.py

package info (click to toggle)
pyopengl 2.0.1.08-5.1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 19,484 kB
  • ctags: 9,036
  • sloc: pascal: 64,950; xml: 28,088; ansic: 20,696; python: 19,761; tcl: 668; makefile: 240; sh: 25
file content (68 lines) | stat: -rw-r--r-- 2,149 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import sys, string
from distutils.core import Command
from distutils.util import *


if sys.platform == 'win32':
	try:
		from win32com.shell import shell
		import pythoncom
		create_shortcuts = 1
	except ImportError:
		create_shortcuts = 0
else:
	create_shortcuts = 0


shortcuts = ({'name':'PyOpenGL/Documentation/PyOpenGL Manual - HTMLHelp',
			  'description':'PyOpenGL Manual in HTMLHelp format.',
			  'path':'$lib/OpenGL/doc/manual.chm'},
			 {'name':'PyOpenGL/Documentation/PyOpenGL Manual - HTML',
			  'description':'PyOpenGL Manual in HTML format.',
			  'path':'$lib/OpenGL/doc/html/index.html'},
			 {'name':'PyOpenGL/Documentation/PyOpenGL Manual - XHTML',
			  'description':'PyOpenGL Manual in XHTML format.',
			  'path':'$lib/OpenGL/doc/xhtml/index.xml'},
			 {'name':'PyOpenGL/Documentation/PyOpenGL Manual - Online',
			  'description':'PyOpenGL Manual in HTML format.',
			  'path':'http://pyopengl.sourceforge.net/documentation/manual/'})


class install_shortcuts(Command):

	user_options = []

	def initialize_options(self):
		pass


	def finalize_options(self):
		pass


	def create_win32(self, name, path, description):
		s = pythoncom.CoCreateInstance(shell.CLSID_ShellLink, None, pythoncom.CLSCTX_INPROC_SERVER, shell.IID_IShellLink)
		s.SetPath(path)
		s.SetDescription(description)
		filename = os.path.join(r'c:\windows\Start Menu\Programs', name + '.lnk')
		self.mkpath(os.path.dirname(filename))
		s.QueryInterface(pythoncom.IID_IPersistFile).Save(filename, 0)


	def run(self):
		if create_shortcuts:
			install_cmd = self.get_finalized_command('install')
			vars = {'lib':install_cmd.install_lib,
					'headers':install_cmd.install_headers,
					'scripts':install_cmd.install_scripts,
					'data':install_cmd.install_data}

			for shortcut in shortcuts:
				if string.split(shortcut['path'], ':')[0] == 'http':
					path = shortcut['path']
				else:
					path = convert_path(subst_vars(shortcut['path'], vars))
				name = convert_path(shortcut['name'])
				if sys.platform == 'win32':
					self.create_win32(name, path, shortcut['description'])