scripts/create_windows_links.py

Wed, 24 May 2023 19:54:24 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 24 May 2023 19:54:24 +0200
branch
eric7
changeset 10065
de4ae767b0e3
parent 9653
e67609152c5e
child 10372
1444b4bee64b
permissions
-rw-r--r--

Corrected and checked some code style issues.

6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 #!/usr/bin/env python3
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2 # -*- coding: utf-8 -*-
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3
9653
e67609152c5e Updated copyright for 2023.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9505
diff changeset
4 # Copyright (c) 2018 - 2023 Detlev Offenbach <detlev@die-offenbachs.de>
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5 #
7960
e8fc383322f7 Harmonized some user visible strings and changed the term 'eric6' to the more generic 'eric'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
6 # This is the install script for eric.
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
7960
e8fc383322f7 Harmonized some user visible strings and changed the term 'eric6' to the more generic 'eric'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
9 Installation script for the eric IDE and all eric related tools.
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 """
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9448
diff changeset
12 import contextlib
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 import os
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 import sys
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
16 try:
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
17 import winreg
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
18 except ImportError:
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
19 print("This script is to be used on Windows platforms only. Aborting...")
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
20 sys.exit(1)
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
21
9448
ea215f7afab3 Fixed an issue importing the eric7config module.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9406
diff changeset
22 from eric7.Globals import getConfig
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
10065
de4ae767b0e3 Corrected and checked some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
25 def main():
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 """
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 Create Desktop and Start Menu links.
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
9209
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
29 if sys.platform.startswith(("win", "cygwin")):
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
30 regPath = (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
31 "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
32 + "\\User Shell Folders"
9209
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
33 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
34
9209
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
35 # 1. create desktop shortcuts
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
36 regName = "Desktop"
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
37 desktopFolder = os.path.normpath(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
38 os.path.expandvars(getWinregEntry(regName, regPath))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
39 )
9209
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
40 for linkName, targetPath, iconPath in windowsDesktopEntries():
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
41 linkPath = os.path.join(desktopFolder, linkName)
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
42 createWindowsShortcut(linkPath, targetPath, iconPath)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
43
9209
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
44 # 2. create start menu entry and shortcuts
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
45 regName = "Programs"
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
46 programsEntry = getWinregEntry(regName, regPath)
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
47 if programsEntry:
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
48 programsFolder = os.path.normpath(os.path.expandvars(programsEntry))
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
49 eric7EntryPath = os.path.join(programsFolder, windowsProgramsEntry())
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
50 if not os.path.exists(eric7EntryPath):
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
51 try:
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
52 os.makedirs(eric7EntryPath)
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
53 except OSError:
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
54 # maybe restrictions prohibited link creation
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
55 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
56
9209
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
57 for linkName, targetPath, iconPath in windowsDesktopEntries():
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
58 linkPath = os.path.join(eric7EntryPath, linkName)
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
59 createWindowsShortcut(linkPath, targetPath, iconPath)
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
60 else:
b99e7fd55fd3 Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
61 print("This script is to be used on Windows platforms only. Aborting...")
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 def getWinregEntry(name, path):
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 """
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 Function to get an entry from the Windows Registry.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
67
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 @param name variable name
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 @type str
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 @param path registry path of the variable
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 @type str
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 @return value of requested registry variable
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 @rtype any
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 """
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 try:
9505
2cef38eac83c Fixed a bug in create_windows_links.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9500
diff changeset
76 registryKey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, path)
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 value, _ = winreg.QueryValueEx(registryKey, name)
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 winreg.CloseKey(registryKey)
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 return value
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 except WindowsError:
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 return None
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 def createWindowsShortcut(linkPath, targetPath, iconPath):
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 """
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 Create Windows shortcut.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
87
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 @param linkPath path of the shortcut file
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 @type str
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 @param targetPath path the shortcut shall point to
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 @type str
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 @param iconPath path of the icon file
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 @type str
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 """
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9448
diff changeset
95 from pywintypes import com_error
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 from win32com.client import Dispatch
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
97
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
98 with contextlib.suppress(com_error):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
99 shell = Dispatch("WScript.Shell")
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 shortcut = shell.CreateShortCut(linkPath)
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 shortcut.Targetpath = targetPath
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 shortcut.WorkingDirectory = os.path.dirname(targetPath)
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 shortcut.IconLocation = iconPath
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 shortcut.save()
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 def windowsDesktopNames():
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 """
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 Function to generate the link names for the Windows Desktop.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
110
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 @return list of desktop link names
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 @rtype list of str
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 """
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 return [e[0] for e in windowsDesktopEntries()]
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 def windowsDesktopEntries():
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 """
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 Function to generate data for the Windows Desktop links.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
120
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 @return list of tuples containing the desktop link name,
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 the link target and the icon target
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 @rtype list of tuples of (str, str, str)
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 """
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 majorVersion, minorVersion = sys.version_info[:2]
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 entriesTemplates = [
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
127 (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
128 "eric7 (Python {0}.{1}).lnk",
9406
e6db5614b97e Corrected some Windows installation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
129 os.path.join(getConfig("bindir"), "eric7_ide.cmd"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
130 os.path.join(getConfig("ericPixDir"), "eric7.ico"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
131 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
132 (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
133 "eric7 Browser (Python {0}.{1}).lnk",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
134 os.path.join(getConfig("bindir"), "eric7_browser.cmd"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
135 os.path.join(getConfig("ericPixDir"), "ericWeb48.ico"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
136 ),
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 ]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
138
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 return [
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
140 (e[0].format(majorVersion, minorVersion), e[1], e[2]) for e in entriesTemplates
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 ]
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 def windowsProgramsEntry():
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 """
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 Function to generate the name of the Start Menu top entry.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
147
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 @return name of the Start Menu top entry
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 @rtype str
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 """
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 majorVersion, minorVersion = sys.version_info[:2]
9406
e6db5614b97e Corrected some Windows installation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
152 return "eric7 IDE (Python {0}.{1})".format(majorVersion, minorVersion)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
153
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
154
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 if __name__ == "__main__":
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 try:
10065
de4ae767b0e3 Corrected and checked some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
157 main()
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 except SystemExit:
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 raise
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 except Exception:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
161 print(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
162 """An internal error occured. Please report all the output"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
163 """ of the program,\nincluding the following traceback, to"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
164 """ eric-bugs@eric-ide.python-projects.org.\n"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
165 )
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 raise
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 #
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
169 # eflag: noqa = M801, I102

eric ide

mercurial