scripts/install.py

Sun, 11 Oct 2020 17:54:52 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 11 Oct 2020 17:54:52 +0200
changeset 7775
4a1db75550bd
parent 7746
12d5e1e6abd1
child 7785
9978016560ec
permissions
-rw-r--r--

Changed code to not use deprecated 'QRegExp' anymore.

12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1 #!/usr/bin/env python3
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2 # -*- coding: utf-8 -*-
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3
7360
9190402e4505 Updated copyright for 2020.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7333
diff changeset
4 # Copyright (c) 2002 - 2020 Detlev Offenbach <detlev@die-offenbachs.de>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5 #
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
6 # This is the install script for eric6.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
9 Installation script for the eric6 IDE and all eric6 related tools.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import sys
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 import os
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 import re
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 import compileall
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 import py_compile
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 import glob
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 import shutil
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 import fnmatch
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7584
diff changeset
20 import subprocess # secok
5214
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
21 import time
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
22 import io
7453
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
23 import json
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 # Define the globals.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 progName = None
1658
c61997a63efe Changed the install script to deal with installations initiated from a directory not containing the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1538
diff changeset
27 currDir = os.getcwd()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 modDir = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 pyModDir = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 platBinDir = None
4455
ca13a6f6c452 Prepared the Python3 debug client for some obsolescences of the inspect.py module.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4435
diff changeset
31 platBinDirOld = None
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 distDir = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 apisDir = None
3943
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
34 installApis = True
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 doCleanup = True
6663
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
36 doCleanDesktopLinks = False
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
37 forceCleanDesktopLinks = False
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 doCompile = True
7333
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
39 yes2All = False
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 cfg = {}
3468
869d0b6e1e16 Added an API file for QSS and corrected an issue in the APIs manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
41 progLanguages = ["Python", "Ruby", "QSS"]
622
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
42 sourceDir = "eric"
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
43 eric6SourceDir = os.path.join(sourceDir, "eric6")
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
44 configName = 'eric6config.py'
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
45 defaultMacAppBundleName = "eric6.app"
3714
4080395e3426 Changed the uninstall code for Mac platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3705
diff changeset
46 defaultMacAppBundlePath = "/Applications"
3955
9c3e54d351e2 Changed some code in the install script to improve virtualenv support for Mac.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3950
diff changeset
47 defaultMacPythonExe = "{0}/Resources/Python.app/Contents/MacOS/Python".format(
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
48 sys.exec_prefix)
7584
328d92d8db48 install: fixed an issue causing a faulty application bundle being created for macOS installations when installing into a Python virtual environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7566
diff changeset
49 if not os.path.exists(defaultMacPythonExe):
328d92d8db48 install: fixed an issue causing a faulty application bundle being created for macOS installations when installing into a Python virtual environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7566
diff changeset
50 defaultMacPythonExe = ""
3955
9c3e54d351e2 Changed some code in the install script to improve virtualenv support for Mac.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3950
diff changeset
51 macAppBundleName = defaultMacAppBundleName
9c3e54d351e2 Changed some code in the install script to improve virtualenv support for Mac.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3950
diff changeset
52 macAppBundlePath = defaultMacAppBundlePath
9c3e54d351e2 Changed some code in the install script to improve virtualenv support for Mac.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3950
diff changeset
53 macPythonExe = defaultMacPythonExe
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54
565
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
55 # Define blacklisted versions of the prerequisites
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
56 BlackLists = {
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
57 "sip": [],
3657
ae833e7fcd6c Adopted the install script for PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
58 "PyQt5": [],
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
59 "QScintilla2": [],
565
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
60 }
1914
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
61 PlatformsBlackLists = {
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
62 "windows": {
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
63 "sip": [],
3657
ae833e7fcd6c Adopted the install script for PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
64 "PyQt5": [],
1914
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
65 "QScintilla2": [],
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
66 },
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
67
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
68 "linux": {
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
69 "sip": [],
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3628
diff changeset
70 "PyQt5": [],
1914
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
71 "QScintilla2": [],
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
72 },
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
73
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
74 "mac": {
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
75 "sip": [],
3657
ae833e7fcd6c Adopted the install script for PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
76 "PyQt5": [],
1914
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
77 "QScintilla2": [],
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
78 },
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
79 }
565
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
80
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
81
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
82 def exit(rcode=0):
390
daa7c6ae6248 Change install script to always keep it open on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 386
diff changeset
83 """
daa7c6ae6248 Change install script to always keep it open on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 386
diff changeset
84 Exit the install script.
3019
7912530a33e2 Fixed a few documentation strings that got broken while doing the line shortening job. That concludes the later.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3003
diff changeset
85
7912530a33e2 Fixed a few documentation strings that got broken while doing the line shortening job. That concludes the later.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3003
diff changeset
86 @param rcode result code to report back (integer)
390
daa7c6ae6248 Change install script to always keep it open on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 386
diff changeset
87 """
1658
c61997a63efe Changed the install script to deal with installations initiated from a directory not containing the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1538
diff changeset
88 global currDir
c61997a63efe Changed the install script to deal with installations initiated from a directory not containing the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1538
diff changeset
89
5963
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
90 print()
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
91
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
92 if sys.platform.startswith(("win", "cygwin")):
2428
11e6e63a89d0 Wrapped calls to input() by try-except in install.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2423
diff changeset
93 try:
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7584
diff changeset
94 input("Press enter to continue...") # secok
2680
110ac646a3a0 Fixes for TabNanny and some code cleanup. Source doku regenerated.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2677
diff changeset
95 except (EOFError, SyntaxError):
2428
11e6e63a89d0 Wrapped calls to input() by try-except in install.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2423
diff changeset
96 pass
390
daa7c6ae6248 Change install script to always keep it open on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 386
diff changeset
97
1658
c61997a63efe Changed the install script to deal with installations initiated from a directory not containing the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1538
diff changeset
98 os.chdir(currDir)
c61997a63efe Changed the install script to deal with installations initiated from a directory not containing the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1538
diff changeset
99
390
daa7c6ae6248 Change install script to always keep it open on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 386
diff changeset
100 sys.exit(rcode)
daa7c6ae6248 Change install script to always keep it open on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 386
diff changeset
101
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
102
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
103 def usage(rcode=2):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 Display a usage message and exit.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 @param rcode the return code passed back to the calling process.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 """
3507
b09e10d4f343 Changed the install script to accept a '-n' option to set the name of the directory where the Mac application bundle should be created in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3468
diff changeset
109 global progName, modDir, distDir, apisDir
b09e10d4f343 Changed the install script to accept a '-n' option to set the name of the directory where the Mac application bundle should be created in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3468
diff changeset
110 global macAppBundleName, macAppBundlePath, macPythonExe
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
112 print()
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
113 print("Usage:")
2306
0f020f39977b Extended the Mac support to be able to install multiple configurations in parallel (e.g. for Qt4 and Qt5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2275
diff changeset
114 if sys.platform == "darwin":
7333
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
115 print(" {0} [-chxz] [-a dir] [-b dir] [-d dir] [-f file] [-i dir]"
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
116 " [-m name] [-n path] [-p python] [--no-apis] [--yes]"
6663
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
117 .format(progName))
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
118 elif sys.platform.startswith(("win", "cygwin")):
7333
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
119 print(" {0} [-chxz] [-a dir] [-b dir] [-d dir] [-f file]"
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
120 " [--clean-desktop] [--no-apis] [--yes]"
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3019
diff changeset
121 .format(progName))
2306
0f020f39977b Extended the Mac support to be able to install multiple configurations in parallel (e.g. for Qt4 and Qt5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2275
diff changeset
122 else:
7333
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
123 print(" {0} [-chxz] [-a dir] [-b dir] [-d dir] [-f file] [-i dir]"
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
124 " [--no-apis] [--yes]"
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3019
diff changeset
125 .format(progName))
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
126 print("where:")
3935
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
127 print(" -h, --help display this help message")
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
128 print(" -a dir where the API files will be installed")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 if apisDir:
3935
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
130 print(" (default: {0})".format(apisDir))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 else:
3935
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
132 print(" (no default value)")
6663
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
133 print(" --no-apis don't install API files")
3935
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
134 print(" -b dir where the binaries will be installed")
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
135 print(" (default: {0})".format(platBinDir))
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
136 print(" -d dir where eric6 python files will be installed")
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
137 print(" (default: {0})".format(modDir))
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
138 print(" -f file configuration file naming the various installation"
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
139 " paths")
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
140 if not sys.platform.startswith(("win", "cygwin")):
3935
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
141 print(" -i dir temporary install prefix")
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
142 print(" (default: {0})".format(distDir))
2306
0f020f39977b Extended the Mac support to be able to install multiple configurations in parallel (e.g. for Qt4 and Qt5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2275
diff changeset
143 if sys.platform == "darwin":
3935
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
144 print(" -m name name of the Mac app bundle")
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
145 print(" (default: {0})".format(macAppBundleName))
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
146 print(" -n path path of the directory the Mac app bundle will")
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
147 print(" be created in")
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
148 print(" (default: {0})".format(macAppBundlePath))
3955
9c3e54d351e2 Changed some code in the install script to improve virtualenv support for Mac.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3950
diff changeset
149 print(" -p python path of the python executable")
3935
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
150 print(" (default: {0})".format(macPythonExe))
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
151 print(" -c don't cleanup old installation first")
6663
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
152 if sys.platform.startswith(("win", "cygwin")):
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
153 (" --clean-desktop delete desktop links before installation")
3935
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
154 print(" -x don't perform dependency checks (use on your own"
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
155 " risk)")
3935
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
156 print(" -z don't compile the installed python files")
7333
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
157 print(" --yes answer 'yes' to all questions")
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
158 print()
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
159 print("The file given to the -f option must be valid Python code"
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
160 " defining a")
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
161 print("dictionary called 'cfg' with the keys 'ericDir', 'ericPixDir',"
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
162 " 'ericIconDir',")
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
163 print("'ericDTDDir', 'ericCSSDir', 'ericStylesDir', 'ericDocDir',"
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
164 " 'ericExamplesDir',")
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
165 print("'ericTranslationsDir', 'ericTemplatesDir', 'ericCodeTemplatesDir',")
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
166 print("'ericOthersDir','bindir', 'mdir' and 'apidir.")
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
167 print("These define the directories for the installation of the various"
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
168 " parts of eric6.")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169
390
daa7c6ae6248 Change install script to always keep it open on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 386
diff changeset
170 exit(rcode)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 def initGlobals():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 """
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2763
diff changeset
175 Module function to set the values of globals that need more than a
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2763
diff changeset
176 simple assignment.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 """
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
178 global platBinDir, modDir, pyModDir, apisDir, platBinDirOld
6304
68f9aa03bf75 install: show a message to the user if the distutile package cannot be imported.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6275
diff changeset
179
68f9aa03bf75 install: show a message to the user if the distutile package cannot be imported.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6275
diff changeset
180 try:
68f9aa03bf75 install: show a message to the user if the distutile package cannot be imported.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6275
diff changeset
181 import distutils.sysconfig
68f9aa03bf75 install: show a message to the user if the distutile package cannot be imported.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6275
diff changeset
182 except ImportError:
68f9aa03bf75 install: show a message to the user if the distutile package cannot be imported.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6275
diff changeset
183 print("Please install the 'distutils' package first.")
68f9aa03bf75 install: show a message to the user if the distutile package cannot be imported.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6275
diff changeset
184 exit(5)
68f9aa03bf75 install: show a message to the user if the distutile package cannot be imported.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6275
diff changeset
185
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
186 if sys.platform.startswith(("win", "cygwin")):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 platBinDir = sys.exec_prefix
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 if platBinDir.endswith("\\"):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 platBinDir = platBinDir[:-1]
4456
9a2304647d95 Changed installation destination on Windows to be the Scripts subdirectory of the Python installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4455
diff changeset
190 platBinDirOld = platBinDir
9a2304647d95 Changed installation destination on Windows to be the Scripts subdirectory of the Python installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4455
diff changeset
191 platBinDir = os.path.join(platBinDir, "Scripts")
9a2304647d95 Changed installation destination on Windows to be the Scripts subdirectory of the Python installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4455
diff changeset
192 if not os.path.exists(platBinDir):
9a2304647d95 Changed installation destination on Windows to be the Scripts subdirectory of the Python installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4455
diff changeset
193 platBinDir = platBinDirOld
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 else:
6214
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
195 pyBinDir = os.path.normpath(os.path.dirname(sys.executable))
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
196 if os.access(pyBinDir, os.W_OK):
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
197 # install the eric scripts along the python executable
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
198 platBinDir = pyBinDir
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
199 else:
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
200 # install them in the user's bin directory
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
201 platBinDir = os.path.expanduser("~/bin")
7257
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
202 if (
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
203 platBinDir != "/usr/local/bin" and
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
204 os.access("/usr/local/bin", os.W_OK)
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
205 ):
6214
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
206 platBinDirOld = "/usr/local/bin"
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 modDir = distutils.sysconfig.get_python_lib(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 pyModDir = modDir
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
211 pyqtDataDir = os.path.join(modDir, "PyQt5")
2608
01118174a2f5 Changed code to be compatible with latest PyQt4 Windows installers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2586
diff changeset
212 if os.path.exists(os.path.join(pyqtDataDir, "qsci")):
01118174a2f5 Changed code to be compatible with latest PyQt4 Windows installers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2586
diff changeset
213 # it's the installer
01118174a2f5 Changed code to be compatible with latest PyQt4 Windows installers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2586
diff changeset
214 qtDataDir = pyqtDataDir
6214
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
215 elif os.path.exists(os.path.join(pyqtDataDir, "Qt", "qsci")):
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
216 # it's the wheel
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
217 qtDataDir = os.path.join(pyqtDataDir, "Qt")
2608
01118174a2f5 Changed code to be compatible with latest PyQt4 Windows installers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2586
diff changeset
218 else:
6214
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
219 # determine dynamically
2608
01118174a2f5 Changed code to be compatible with latest PyQt4 Windows installers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2586
diff changeset
220 try:
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
221 from PyQt5.QtCore import QLibraryInfo
2608
01118174a2f5 Changed code to be compatible with latest PyQt4 Windows installers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2586
diff changeset
222 qtDataDir = QLibraryInfo.location(QLibraryInfo.DataPath)
01118174a2f5 Changed code to be compatible with latest PyQt4 Windows installers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2586
diff changeset
223 except ImportError:
01118174a2f5 Changed code to be compatible with latest PyQt4 Windows installers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2586
diff changeset
224 qtDataDir = None
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 if qtDataDir:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 apisDir = os.path.join(qtDataDir, "qsci", "api")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 apisDir = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 def copyToFile(name, text):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 Copy a string to a file.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 @param name the name of the file.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 @param text the contents to copy to the file.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 """
2680
110ac646a3a0 Fixes for TabNanny and some code cleanup. Source doku regenerated.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2677
diff changeset
238 f = open(name, "w")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 f.write(text)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 f.close()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
243 def copyDesktopFile(src, dst):
3931
ff8e034662d6 Modified the install script to allow parallel installation for Python2 and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3897
diff changeset
244 """
ff8e034662d6 Modified the install script to allow parallel installation for Python2 and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3897
diff changeset
245 Modify a desktop file and write it to its destination.
ff8e034662d6 Modified the install script to allow parallel installation for Python2 and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3897
diff changeset
246
ff8e034662d6 Modified the install script to allow parallel installation for Python2 and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3897
diff changeset
247 @param src source file name (string)
ff8e034662d6 Modified the install script to allow parallel installation for Python2 and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3897
diff changeset
248 @param dst destination file name (string)
ff8e034662d6 Modified the install script to allow parallel installation for Python2 and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3897
diff changeset
249 """
6275
8ce9f9c467ec Fixed some install script issues related to defining the bin dir via -b switch.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6216
diff changeset
250 global cfg, platBinDir
6216
2a0eeba143e7 install script: corrected the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6214
diff changeset
251
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
252 f = open(src, "r", encoding="utf-8")
3931
ff8e034662d6 Modified the install script to allow parallel installation for Python2 and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3897
diff changeset
253 text = f.read()
ff8e034662d6 Modified the install script to allow parallel installation for Python2 and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3897
diff changeset
254 f.close()
ff8e034662d6 Modified the install script to allow parallel installation for Python2 and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3897
diff changeset
255
6275
8ce9f9c467ec Fixed some install script issues related to defining the bin dir via -b switch.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6216
diff changeset
256 text = text.replace("@BINDIR@", platBinDir)
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
257 text = text.replace("@MARKER@", "")
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
258 text = text.replace("@PY_MARKER@", "")
3931
ff8e034662d6 Modified the install script to allow parallel installation for Python2 and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3897
diff changeset
259
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
260 f = open(dst, "w", encoding="utf-8")
3931
ff8e034662d6 Modified the install script to allow parallel installation for Python2 and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3897
diff changeset
261 f.write(text)
ff8e034662d6 Modified the install script to allow parallel installation for Python2 and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3897
diff changeset
262 f.close()
ff8e034662d6 Modified the install script to allow parallel installation for Python2 and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3897
diff changeset
263 os.chmod(dst, 0o644)
ff8e034662d6 Modified the install script to allow parallel installation for Python2 and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3897
diff changeset
264
ff8e034662d6 Modified the install script to allow parallel installation for Python2 and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3897
diff changeset
265
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
266 def copyAppStreamFile(src, dst):
5214
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
267 """
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
268 Modify an appstream file and write it to its destination.
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
269
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
270 @param src source file name (string)
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
271 @param dst destination file name (string)
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
272 """
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
273 if os.path.exists(os.path.join("eric", "eric6", "UI", "Info.py")):
5214
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
274 # Installing from archive
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
275 from eric.eric6.UI.Info import Version
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
276 elif os.path.exists(os.path.join("eric6", "UI", "Info.py")):
5214
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
277 # Installing from source tree
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
278 from eric6.UI.Info import Version
5214
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
279 else:
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
280 Version = "Unknown"
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
281
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
282 f = open(src, "r", encoding="utf-8")
5214
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
283 text = f.read()
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
284 f.close()
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
285
7257
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
286 text = (
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
287 text.replace("@MARKER@", "")
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
288 .replace("@VERSION@", Version.split(None, 1)[0])
5214
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
289 .replace("@DATE@", time.strftime("%Y-%m-%d"))
7257
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
290 )
5214
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
291
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
292 f = open(dst, "w", encoding="utf-8")
5214
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
293 f.write(text)
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
294 f.close()
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
295 os.chmod(dst, 0o644)
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
296
0473e5256ca9 Fixes to comply with the current AppStream file format and contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5145
diff changeset
297
6495
6e73d31af3af Changed the extension of the generated script files for Windows from '.bat' to '.cmd'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6476
diff changeset
298 def wrapperNames(dname, wfile):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
299 """
6495
6e73d31af3af Changed the extension of the generated script files for Windows from '.bat' to '.cmd'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6476
diff changeset
300 Create the platform specific names for the wrapper script.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
301
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
302 @param dname name of the directory to place the wrapper into
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
303 @param wfile basename (without extension) of the wrapper script
6495
6e73d31af3af Changed the extension of the generated script files for Windows from '.bat' to '.cmd'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6476
diff changeset
304 @return the names of the wrapper scripts
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
305 """
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
306 if sys.platform.startswith(("win", "cygwin")):
6495
6e73d31af3af Changed the extension of the generated script files for Windows from '.bat' to '.cmd'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6476
diff changeset
307 wnames = (dname + "\\" + wfile + ".cmd",
6e73d31af3af Changed the extension of the generated script files for Windows from '.bat' to '.cmd'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6476
diff changeset
308 dname + "\\" + wfile + ".bat")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
309 else:
6495
6e73d31af3af Changed the extension of the generated script files for Windows from '.bat' to '.cmd'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6476
diff changeset
310 wnames = (dname + "/" + wfile, )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
311
6495
6e73d31af3af Changed the extension of the generated script files for Windows from '.bat' to '.cmd'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6476
diff changeset
312 return wnames
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
315 def createPyWrapper(pydir, wfile, saveDir, isGuiScript=True):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 Create an executable wrapper for a Python script.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318
899
4687532058ba Fixed an issue in the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 896
diff changeset
319 @param pydir the name of the directory where the Python script will
3612
786d97a08a14 Extended the install script and fixed a few issue related to installations with Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3609
diff changeset
320 eventually be installed (string)
786d97a08a14 Extended the install script and fixed a few issue related to installations with Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3609
diff changeset
321 @param wfile the basename of the wrapper (string)
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
322 @param saveDir directory to save the file into (string)
902
c06241839b12 Fixed a source docu string in the new installer script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 900
diff changeset
323 @param isGuiScript flag indicating a wrapper script for a GUI
c06241839b12 Fixed a source docu string in the new installer script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 900
diff changeset
324 application (boolean)
3612
786d97a08a14 Extended the install script and fixed a few issue related to installations with Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3609
diff changeset
325 @return the platform specific name of the wrapper (string)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
327 # all kinds of Windows systems
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
328 if sys.platform.startswith(("win", "cygwin")):
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
329 wname = wfile + ".cmd"
899
4687532058ba Fixed an issue in the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 896
diff changeset
330 if isGuiScript:
7257
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
331 wrapper = (
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
332 '''@echo off\n'''
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
333 '''start "" "{2}\\pythonw.exe"'''
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
334 ''' "{0}\\{1}.pyw"'''
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
335 ''' %1 %2 %3 %4 %5 %6 %7 %8 %9\n'''.format(
7302
875a9a29c38f install: fixed an issue installing eric into a venv on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7288
diff changeset
336 pydir, wfile, os.path.dirname(sys.executable))
7257
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
337 )
899
4687532058ba Fixed an issue in the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 896
diff changeset
338 else:
7257
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
339 wrapper = (
7302
875a9a29c38f install: fixed an issue installing eric into a venv on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7288
diff changeset
340 '''@"{0}" "{1}\\{2}.py"'''
1402
474db48f495c Fixed an issue in creating the startup scripts for Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1400
diff changeset
341 ''' %1 %2 %3 %4 %5 %6 %7 %8 %9\n'''.format(
7302
875a9a29c38f install: fixed an issue installing eric into a venv on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7288
diff changeset
342 sys.executable, pydir, wfile)
7257
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
343 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
344
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
345 # Mac OS X
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346 elif sys.platform == "darwin":
3612
786d97a08a14 Extended the install script and fixed a few issue related to installations with Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3609
diff changeset
347 major = sys.version_info.major
786d97a08a14 Extended the install script and fixed a few issue related to installations with Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3609
diff changeset
348 pyexec = "{0}/bin/pythonw{1}".format(sys.exec_prefix, major)
2618
bc7339209500 Fixed an issue in the install script related to the usage of a virtual environment on Mac.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2608
diff changeset
349 if not os.path.exists(pyexec):
3612
786d97a08a14 Extended the install script and fixed a few issue related to installations with Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3609
diff changeset
350 pyexec = "{0}/bin/python{1}".format(sys.exec_prefix, major)
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
351 wname = wfile
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
352 wrapper = ('''#!/bin/sh\n'''
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
353 '''\n'''
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
354 '''exec "{0}" "{1}/{2}.py" "$@"\n'''
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
355 .format(pyexec, pydir, wfile))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
356
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357 # *nix systems
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
358 else:
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
359 wname = wfile
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
360 wrapper = ('''#!/bin/sh\n'''
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
361 '''\n'''
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
362 '''exec "{0}" "{1}/{2}.py" "$@"\n'''
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
363 .format(sys.executable, pydir, wfile))
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
364
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
365 wname = os.path.join(saveDir, wname)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
366 copyToFile(wname, wrapper)
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7584
diff changeset
367 os.chmod(wname, 0o755) # secok
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
368
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
369 return wname
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
371
5651
982465f8389c Fixed a few code style issues related to the usage of mutable types for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5628
diff changeset
372 def copyTree(src, dst, filters, excludeDirs=None, excludePatterns=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
373 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
374 Copy Python, translation, documentation, wizards configuration,
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
375 designer template files and DTDs of a directory tree.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
377 @param src name of the source directory
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
378 @param dst name of the destination directory
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
379 @param filters list of filter pattern determining the files to be copied
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 @param excludeDirs list of (sub)directories to exclude from copying
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
381 @keyparam excludePatterns list of filter pattern determining the files to
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
382 be skipped
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
383 """
5651
982465f8389c Fixed a few code style issues related to the usage of mutable types for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5628
diff changeset
384 if excludeDirs is None:
982465f8389c Fixed a few code style issues related to the usage of mutable types for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5628
diff changeset
385 excludeDirs = []
982465f8389c Fixed a few code style issues related to the usage of mutable types for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5628
diff changeset
386 if excludePatterns is None:
982465f8389c Fixed a few code style issues related to the usage of mutable types for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5628
diff changeset
387 excludePatterns = []
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
388 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
389 names = os.listdir(src)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
390 except OSError:
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
391 # ignore missing directories (most probably the i18n directory)
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
392 return
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
393
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
394 for name in names:
1115
3032cc87dee2 Enhanced the install script a little bit.
detlev@die-offenbachs.de
parents: 945
diff changeset
395 skipIt = False
3032cc87dee2 Enhanced the install script a little bit.
detlev@die-offenbachs.de
parents: 945
diff changeset
396 for excludePattern in excludePatterns:
3032cc87dee2 Enhanced the install script a little bit.
detlev@die-offenbachs.de
parents: 945
diff changeset
397 if fnmatch.fnmatch(name, excludePattern):
3032cc87dee2 Enhanced the install script a little bit.
detlev@die-offenbachs.de
parents: 945
diff changeset
398 skipIt = True
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
399 break
1115
3032cc87dee2 Enhanced the install script a little bit.
detlev@die-offenbachs.de
parents: 945
diff changeset
400 if not skipIt:
3032cc87dee2 Enhanced the install script a little bit.
detlev@die-offenbachs.de
parents: 945
diff changeset
401 srcname = os.path.join(src, name)
3032cc87dee2 Enhanced the install script a little bit.
detlev@die-offenbachs.de
parents: 945
diff changeset
402 dstname = os.path.join(dst, name)
5597
3d88d53f8c2b Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
403 for fileFilter in filters:
3d88d53f8c2b Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
404 if fnmatch.fnmatch(srcname, fileFilter):
1115
3032cc87dee2 Enhanced the install script a little bit.
detlev@die-offenbachs.de
parents: 945
diff changeset
405 if not os.path.isdir(dst):
3032cc87dee2 Enhanced the install script a little bit.
detlev@die-offenbachs.de
parents: 945
diff changeset
406 os.makedirs(dst)
3032cc87dee2 Enhanced the install script a little bit.
detlev@die-offenbachs.de
parents: 945
diff changeset
407 shutil.copy2(srcname, dstname)
2160
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
408 os.chmod(dstname, 0o644)
1115
3032cc87dee2 Enhanced the install script a little bit.
detlev@die-offenbachs.de
parents: 945
diff changeset
409 break
3032cc87dee2 Enhanced the install script a little bit.
detlev@die-offenbachs.de
parents: 945
diff changeset
410 else:
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3613
diff changeset
411 if os.path.isdir(srcname) and srcname not in excludeDirs:
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
412 copyTree(srcname, dstname, filters,
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
413 excludePatterns=excludePatterns)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
414
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
415
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
416 def createGlobalPluginsDir():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
417 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
418 Create the global plugins directory, if it doesn't exist.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
419 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
420 global cfg, distDir
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
421
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
422 pdir = os.path.join(cfg['mdir'], "eric6plugins")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
423 fname = os.path.join(pdir, "__init__.py")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
424 if not os.path.exists(fname):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
425 if not os.path.exists(pdir):
3507
b09e10d4f343 Changed the install script to accept a '-n' option to set the name of the directory where the Mac application bundle should be created in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3468
diff changeset
426 os.mkdir(pdir, 0o755)
2680
110ac646a3a0 Fixes for TabNanny and some code cleanup. Source doku regenerated.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2677
diff changeset
427 f = open(fname, "w")
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 473
diff changeset
428 f.write(
4830
f609a22f43bd Fixed a few code style issues detected by the updated pep8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4800
diff changeset
429 '''# -*- coding: utf-8 -*-
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
430
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
431 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
432 Package containing the global plugins.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
433 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
434 '''
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
435 )
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
436 f.close()
2160
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
437 os.chmod(fname, 0o644)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
438
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
439
3593
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
440 def cleanupSource(dirName):
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
441 """
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
442 Cleanup the sources directory to get rid of leftover files
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
443 and directories.
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
444
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
445 @param dirName name of the directory to prune (string)
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
446 """
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
447 # step 1: delete all Ui_*.py files without a corresponding
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
448 # *.ui file
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
449 dirListing = os.listdir(dirName)
3597
137370f7114b Added the '-y' switch to the install script to allow to install Python2 and Python3 variants of eric5 in parallel by giving the startup script a '_py2' or '_py3' postfix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3596
diff changeset
450 for formName, sourceName in [
137370f7114b Added the '-y' switch to the install script to allow to install Python2 and Python3 variants of eric5 in parallel by giving the startup script a '_py2' or '_py3' postfix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3596
diff changeset
451 (f.replace('Ui_', "").replace(".py", ".ui"), f)
137370f7114b Added the '-y' switch to the install script to allow to install Python2 and Python3 variants of eric5 in parallel by giving the startup script a '_py2' or '_py3' postfix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3596
diff changeset
452 for f in dirListing if fnmatch.fnmatch(f, "Ui_*.py")]:
3594
778ae276540f Fixed an issue in the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3593
diff changeset
453 if not os.path.exists(os.path.join(dirName, formName)):
3593
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
454 os.remove(os.path.join(dirName, sourceName))
3594
778ae276540f Fixed an issue in the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3593
diff changeset
455 if os.path.exists(os.path.join(dirName, sourceName + "c")):
3593
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
456 os.remove(os.path.join(dirName, sourceName + "c"))
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
457
5055
7db1b9496e52 Some enhancements to the install and uninstall scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4915
diff changeset
458 # step 2: delete the __pycache__ directory and all remaining *.pyc files
3594
778ae276540f Fixed an issue in the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3593
diff changeset
459 if os.path.exists(os.path.join(dirName, "__pycache__")):
3593
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
460 shutil.rmtree(os.path.join(dirName, "__pycache__"))
5055
7db1b9496e52 Some enhancements to the install and uninstall scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4915
diff changeset
461 for name in [f for f in os.listdir(dirName)
7db1b9496e52 Some enhancements to the install and uninstall scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4915
diff changeset
462 if fnmatch.fnmatch(f, "*.pyc")]:
3612
786d97a08a14 Extended the install script and fixed a few issue related to installations with Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3609
diff changeset
463 os.remove(os.path.join(dirName, name))
3593
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
464
6637
54a92e8dca00 install: extended the source cleanup function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6636
diff changeset
465 # step 3: delete *.orig files
54a92e8dca00 install: extended the source cleanup function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6636
diff changeset
466 for name in [f for f in os.listdir(dirName)
54a92e8dca00 install: extended the source cleanup function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6636
diff changeset
467 if fnmatch.fnmatch(f, "*.orig")]:
54a92e8dca00 install: extended the source cleanup function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6636
diff changeset
468 os.remove(os.path.join(dirName, name))
54a92e8dca00 install: extended the source cleanup function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6636
diff changeset
469
54a92e8dca00 install: extended the source cleanup function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6636
diff changeset
470 # step 4: descent into subdirectories and delete them if empty
3593
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
471 for name in os.listdir(dirName):
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
472 name = os.path.join(dirName, name)
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
473 if os.path.isdir(name):
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
474 cleanupSource(name)
3595
a8433c7a0d8c Fixed another issue in the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3594
diff changeset
475 if len(os.listdir(name)) == 0:
a8433c7a0d8c Fixed another issue in the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3594
diff changeset
476 os.rmdir(name)
3593
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
477
e3435c1ce0cf Extended the install script to clean out the source directory when installing from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3542
diff changeset
478
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
479 def cleanUp():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
480 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
481 Uninstall the old eric files.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
482 """
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
483 global platBinDir, platBinDirOld
2306
0f020f39977b Extended the Mac support to be able to install multiple configurations in parallel (e.g. for Qt4 and Qt5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2275
diff changeset
484
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
485 try:
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
486 from eric6config import getConfig
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
487 except ImportError:
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
488 # eric6 wasn't installed previously
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
489 return
7211
1c97f3142fa8 install/uninstall: implemented code to cope with the situation that the names contained in the eric6config.py file were generated with a non-utf8 encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7203
diff changeset
490 except SyntaxError:
1c97f3142fa8 install/uninstall: implemented code to cope with the situation that the names contained in the eric6config.py file were generated with a non-utf8 encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7203
diff changeset
491 # an incomplete or old config file was found
1c97f3142fa8 install/uninstall: implemented code to cope with the situation that the names contained in the eric6config.py file were generated with a non-utf8 encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7203
diff changeset
492 return
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
493
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
494 global pyModDir, progLanguages
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
495
146
afeb742e7148 Added installation of a .desktop file for Linux systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 133
diff changeset
496 # Remove the menu entry for Linux systems
6214
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
497 if sys.platform.startswith("linux"):
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
498 cleanUpLinuxSpecifics()
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
499 # Remove the Desktop and Start Menu entries for Windows systems
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
500 elif sys.platform.startswith(("win", "cygwin")):
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
501 cleanUpWindowsLinks()
146
afeb742e7148 Added installation of a .desktop file for Linux systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 133
diff changeset
502
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
503 # Remove the wrapper scripts
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
504 rem_wnames = [
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
505 "eric6_api", "eric6_compare",
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
506 "eric6_configure", "eric6_diff",
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
507 "eric6_doc", "eric6_qregularexpression",
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
508 "eric6_qregexp", "eric6_re",
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
509 "eric6_trpreviewer", "eric6_uipreviewer",
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
510 "eric6_unittest", "eric6",
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
511 "eric6_tray", "eric6_editor",
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
512 "eric6_plugininstall", "eric6_pluginuninstall",
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
513 "eric6_pluginrepository", "eric6_sqlbrowser",
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
514 "eric6_iconeditor", "eric6_snap", "eric6_hexeditor",
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
515 "eric6_browser", "eric6_shell",
7203
2079ccbfa335 install, uninstall scripts: re-added the removal of the obsolete eric6_webbrowser stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7192
diff changeset
516 # from Python2 era
2079ccbfa335 install, uninstall scripts: re-added the removal of the obsolete eric6_webbrowser stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7192
diff changeset
517 "eric6_webbrowser",
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
518 ]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
519
1381
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
520 try:
4456
9a2304647d95 Changed installation destination on Windows to be the Scripts subdirectory of the Python installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4455
diff changeset
521 dirs = [platBinDir, getConfig('bindir')]
9a2304647d95 Changed installation destination on Windows to be the Scripts subdirectory of the Python installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4455
diff changeset
522 if platBinDirOld:
9a2304647d95 Changed installation destination on Windows to be the Scripts subdirectory of the Python installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4455
diff changeset
523 dirs.append(platBinDirOld)
1381
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
524 for rem_wname in rem_wnames:
4456
9a2304647d95 Changed installation destination on Windows to be the Scripts subdirectory of the Python installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4455
diff changeset
525 for d in dirs:
6495
6e73d31af3af Changed the extension of the generated script files for Windows from '.bat' to '.cmd'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6476
diff changeset
526 for rwname in wrapperNames(d, rem_wname):
6e73d31af3af Changed the extension of the generated script files for Windows from '.bat' to '.cmd'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6476
diff changeset
527 if os.path.exists(rwname):
6e73d31af3af Changed the extension of the generated script files for Windows from '.bat' to '.cmd'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6476
diff changeset
528 os.remove(rwname)
1381
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
529
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
530 # Cleanup our config file(s)
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
531 for name in ['eric6config.py', 'eric6config.pyc', 'eric6.pth']:
6214
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
532 e6cfile = os.path.join(pyModDir, name)
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
533 if os.path.exists(e6cfile):
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
534 os.remove(e6cfile)
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
535 e6cfile = os.path.join(pyModDir, "__pycache__", name)
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
536 path, ext = os.path.splitext(e6cfile)
1381
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
537 for f in glob.glob("{0}.*{1}".format(path, ext)):
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
538 os.remove(f)
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
539
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
540 # Cleanup the install directories
3003
cb43c34239b1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2992
diff changeset
541 for name in ['ericExamplesDir', 'ericDocDir', 'ericDTDDir',
cb43c34239b1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2992
diff changeset
542 'ericCSSDir', 'ericIconDir', 'ericPixDir',
cb43c34239b1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2992
diff changeset
543 'ericTemplatesDir', 'ericCodeTemplatesDir',
cb43c34239b1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2992
diff changeset
544 'ericOthersDir', 'ericStylesDir', 'ericDir']:
1381
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
545 if os.path.exists(getConfig(name)):
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
546 shutil.rmtree(getConfig(name), True)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
547
1381
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
548 # Cleanup translations
1387
1734bc5f4f82 Mac related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1385
diff changeset
549 for name in glob.glob(
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
550 os.path.join(getConfig('ericTranslationsDir'), 'eric6_*.qm')):
1381
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
551 if os.path.exists(name):
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
552 os.remove(name)
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
553
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
554 # Cleanup API files
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
555 try:
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
556 apidir = getConfig('apidir')
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
557 for progLanguage in progLanguages:
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
558 for name in getConfig('apis'):
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
559 apiname = os.path.join(apidir, progLanguage.lower(), name)
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
560 if os.path.exists(apiname):
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
561 os.remove(apiname)
1387
1734bc5f4f82 Mac related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1385
diff changeset
562 for apiname in glob.glob(
1734bc5f4f82 Mac related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1385
diff changeset
563 os.path.join(apidir, progLanguage.lower(), "*.bas")):
3758
19866b4e9027 Some more places adapted to eric6 and Qt5/PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3751
diff changeset
564 if os.path.basename(apiname) != "eric6.bas":
3697
c947a7eaace4 Updated the base classes files and modified the install and uninstall scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3693
diff changeset
565 os.remove(apiname)
1381
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
566 except AttributeError:
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
567 pass
b66bcd609f83 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1346
diff changeset
568
1387
1734bc5f4f82 Mac related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1385
diff changeset
569 if sys.platform == "darwin":
1734bc5f4f82 Mac related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1385
diff changeset
570 # delete the Mac app bundle
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
571 cleanUpMacAppBundle()
2420
c5a0bc75d5b6 Fixed an issue in the install script.
"Detlev Offenbach <detlev@die-offenbachs.de>"
parents: 2411
diff changeset
572 except (IOError, OSError) as msg:
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
573 sys.stderr.write(
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
574 'Error: {0}\nTry install with admin rights.\n'.format(msg))
1385
9eaf0cda4fb4 Fixed an issue in the install script trying to install without admin rights.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1381
diff changeset
575 exit(7)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
576
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
577
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
578 def cleanUpLinuxSpecifics():
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
579 """
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
580 Clean up Linux specific files.
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
581 """
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
582 if os.getuid() == 0:
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
583 for name in ["/usr/share/pixmaps/eric.png",
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
584 "/usr/share/pixmaps/ericWeb.png"]:
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
585 if os.path.exists(name):
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
586 os.remove(name)
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
587 for name in [
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
588 "/usr/share/applications/eric6.desktop",
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
589 "/usr/share/appdata/eric6.appdata.xml",
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
590 "/usr/share/metainfo/eric6.appdata.xml",
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
591 "/usr/share/applications/eric6_browser.desktop",
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
592 "/usr/share/pixmaps/eric.png",
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
593 "/usr/share/pixmaps/ericWeb.png",
7203
2079ccbfa335 install, uninstall scripts: re-added the removal of the obsolete eric6_webbrowser stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7192
diff changeset
594 # from Python2 era
2079ccbfa335 install, uninstall scripts: re-added the removal of the obsolete eric6_webbrowser stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7192
diff changeset
595 "/usr/share/applications/eric6_webbrowser.desktop",
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
596 ]:
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
597 if os.path.exists(name):
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
598 os.remove(name)
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
599 elif os.getuid() >= 1000:
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
600 # it is assumed that user ids start at 1000
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
601 for name in ["~/.local/share/pixmaps/eric.png",
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
602 "~/.local/share/pixmaps/ericWeb.png"]:
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
603 path = os.path.expanduser(name)
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
604 if os.path.exists(path):
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
605 os.remove(path)
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
606 for name in [
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
607 "~/.local/share/applications/eric6.desktop",
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
608 "~/.local/share/appdata/eric6.appdata.xml",
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
609 "~/.local/share/metainfo/eric6.appdata.xml",
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
610 "~/.local/share/applications/eric6_browser.desktop",
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
611 "~/.local/share/pixmaps/eric.png",
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
612 "~/.local/share/pixmaps/ericWeb.png",
7203
2079ccbfa335 install, uninstall scripts: re-added the removal of the obsolete eric6_webbrowser stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7192
diff changeset
613 # from Python2 era
2079ccbfa335 install, uninstall scripts: re-added the removal of the obsolete eric6_webbrowser stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7192
diff changeset
614 "/usr/share/applications/eric6_webbrowser.desktop",
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
615 ]:
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
616 path = os.path.expanduser(name)
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
617 if os.path.exists(path):
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
618 os.remove(path)
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
619
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
620
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
621 def cleanUpMacAppBundle():
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
622 """
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
623 Uninstall the macOS application bundle.
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
624 """
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
625 from eric6config import getConfig
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
626 try:
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
627 macAppBundlePath = getConfig("macAppBundlePath")
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
628 macAppBundleName = getConfig("macAppBundleName")
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
629 except AttributeError:
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
630 macAppBundlePath = defaultMacAppBundlePath
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
631 macAppBundleName = defaultMacAppBundleName
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
632 for bundlePath in [os.path.join(defaultMacAppBundlePath,
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
633 macAppBundleName),
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
634 os.path.join(macAppBundlePath,
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
635 macAppBundleName),
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
636 ]:
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
637 if os.path.exists(bundlePath):
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
638 shutil.rmtree(bundlePath)
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
639
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
640
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
641 def cleanUpWindowsLinks():
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
642 """
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
643 Clean up the Desktop and Start Menu entries for Windows.
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
644 """
6663
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
645 global doCleanDesktopLinks, forceCleanDesktopLinks
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
646
6510
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
647 try:
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
648 from pywintypes import com_error # __IGNORE_WARNING__
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
649 except ImportError:
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
650 # links were not created by install.py
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
651 return
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
652
7257
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
653 regPath = (
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
654 "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer" +
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
655 "\\User Shell Folders"
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
656 )
6510
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
657
6663
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
658 if doCleanDesktopLinks or forceCleanDesktopLinks:
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
659 # 1. cleanup desktop links
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
660 regName = "Desktop"
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
661 desktopEntry = getWinregEntry(regName, regPath)
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
662 if desktopEntry:
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
663 desktopFolder = os.path.normpath(os.path.expandvars(desktopEntry))
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
664 for linkName in windowsDesktopNames():
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
665 linkPath = os.path.join(desktopFolder, linkName)
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
666 if os.path.exists(linkPath):
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
667 try:
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
668 os.remove(linkPath)
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
669 except EnvironmentError:
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
670 # maybe restrictions prohibited link removal
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
671 print("Could not remove '{0}'.".format(linkPath))
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
672
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
673 # 2. cleanup start menu entry
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
674 regName = "Programs"
6510
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
675 programsEntry = getWinregEntry(regName, regPath)
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
676 if programsEntry:
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
677 programsFolder = os.path.normpath(os.path.expandvars(programsEntry))
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
678 eric6EntryPath = os.path.join(programsFolder, windowsProgramsEntry())
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
679 if os.path.exists(eric6EntryPath):
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
680 try:
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
681 shutil.rmtree(eric6EntryPath)
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
682 except EnvironmentError:
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
683 # maybe restrictions prohibited link removal
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
684 print("Could not remove '{0}'.".format(eric6EntryPath))
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
685
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
686
2177
a59ffbc5fe4c Fixed an error in the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2160
diff changeset
687 def shutilCopy(src, dst, perm=0o644):
2160
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
688 """
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
689 Wrapper function around shutil.copy() to ensure the permissions.
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
690
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
691 @param src source file name (string)
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
692 @param dst destination file name or directory name (string)
2177
a59ffbc5fe4c Fixed an error in the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2160
diff changeset
693 @keyparam perm permissions to be set (integer)
2160
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
694 """
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
695 shutil.copy(src, dst)
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
696 if os.path.isdir(dst):
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
697 dst = os.path.join(dst, os.path.basename(src))
2177
a59ffbc5fe4c Fixed an error in the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2160
diff changeset
698 os.chmod(dst, perm)
2160
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
699
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
700
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
701 def installEric():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
702 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
703 Actually perform the installation steps.
2383
e999256385bd Extended the installation routine by the creation of a desktop file for the eric5 web browser.
"Detlev Offenbach <detlev@die-offenbachs.de>"
parents: 2312
diff changeset
704
e999256385bd Extended the installation routine by the creation of a desktop file for the eric5 web browser.
"Detlev Offenbach <detlev@die-offenbachs.de>"
parents: 2312
diff changeset
705 @return result code (integer)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
706 """
622
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
707 global distDir, doCleanup, cfg, progLanguages, sourceDir, configName
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
708 global installApis
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
709
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
710 # Create the platform specific wrappers.
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
711 scriptsDir = "install_scripts"
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
712 if not os.path.isdir(scriptsDir):
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
713 os.mkdir(scriptsDir)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
714 wnames = []
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
715 for name in ["eric6_api", "eric6_doc"]:
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
716 wnames.append(createPyWrapper(cfg['ericDir'], name, scriptsDir, False))
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
717 for name in ["eric6_compare", "eric6_configure", "eric6_diff",
4673
6fa2418f010c Finalized the hex editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
718 "eric6_editor", "eric6_hexeditor", "eric6_iconeditor",
6fa2418f010c Finalized the hex editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
719 "eric6_plugininstall", "eric6_pluginrepository",
7775
4a1db75550bd Changed code to not use deprecated 'QRegExp' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7746
diff changeset
720 "eric6_pluginuninstall", "eric6_qregularexpression",
4a1db75550bd Changed code to not use deprecated 'QRegExp' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7746
diff changeset
721 "eric6_re", "eric6_snap", "eric6_sqlbrowser", "eric6_tray",
4a1db75550bd Changed code to not use deprecated 'QRegExp' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7746
diff changeset
722 "eric6_trpreviewer", "eric6_uipreviewer", "eric6_unittest",
4a1db75550bd Changed code to not use deprecated 'QRegExp' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7746
diff changeset
723 "eric6_browser", "eric6_shell", "eric6"]:
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
724 wnames.append(createPyWrapper(cfg['ericDir'], name, scriptsDir))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
725
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
726 # set install prefix, if not None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
727 if distDir:
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
728 for key in list(cfg.keys()):
7121
1d6f6aa6b18f install.py: added a patch provided by Guðjón Guðjónsson.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7039
diff changeset
729 cfg[key] = os.path.normpath(
1d6f6aa6b18f install.py: added a patch provided by Guðjón Guðjónsson.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7039
diff changeset
730 os.path.join(distDir, cfg[key].lstrip(os.sep)))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
731
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
732 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
733 # Install the files
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
734 # make the install directories
3948
6c3720179d6b Extended the install script to improve cooperation with packagers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3943
diff changeset
735 for key in cfg.keys():
6c3720179d6b Extended the install script to improve cooperation with packagers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3943
diff changeset
736 if cfg[key] and not os.path.isdir(cfg[key]):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
737 os.makedirs(cfg[key])
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
738
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
739 # copy the eric6 config file
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
740 if distDir:
2160
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
741 shutilCopy(configName, cfg['mdir'])
622
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
742 if os.path.exists(configName + 'c'):
2160
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
743 shutilCopy(configName + 'c', cfg['mdir'])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
744 else:
2160
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
745 shutilCopy(configName, modDir)
622
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
746 if os.path.exists(configName + 'c'):
2160
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
747 shutilCopy(configName + 'c', modDir)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
748
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
749 # copy the various parts of eric6
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3019
diff changeset
750 copyTree(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
751 eric6SourceDir, cfg['ericDir'],
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
752 ['*.py', '*.pyc', '*.pyo', '*.pyw'],
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
753 [os.path.join(sourceDir, "Examples"),
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
754 os.path.join(sourceDir, ".ropeproject")],
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
755 excludePatterns=["eric6config.py*"])
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3019
diff changeset
756 copyTree(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
757 os.path.join(eric6SourceDir, "Plugins"),
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
758 os.path.join(cfg['ericDir'], "Plugins"),
6939
af0ca76e26fd install.py: fixed an issue causing the trove classifiers file of the setup wizard not being installed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6906
diff changeset
759 ['*.svgz', '*.svg', '*.png', '*.style', '*.tmpl', '*.txt'])
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
760 copyTree(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
761 os.path.join(eric6SourceDir, "Documentation"),
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
762 cfg['ericDocDir'],
433
988006cb898f Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 390
diff changeset
763 ['*.html', '*.qch'])
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3019
diff changeset
764 copyTree(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
765 os.path.join(eric6SourceDir, "CSSs"),
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
766 cfg['ericCSSDir'],
622
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
767 ['*.css'])
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
768 copyTree(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
769 os.path.join(eric6SourceDir, "Styles"),
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
770 cfg['ericStylesDir'],
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
771 ['*.qss', '*.e4h', '*.e6h'])
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
772 copyTree(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
773 os.path.join(eric6SourceDir, "i18n"),
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
774 cfg['ericTranslationsDir'],
622
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
775 ['*.qm'])
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3019
diff changeset
776 copyTree(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
777 os.path.join(eric6SourceDir, "icons"),
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
778 cfg['ericIconDir'],
6760
448de556dd34 Updated Russian translations.
Alexander Barkoff
parents: 6664
diff changeset
779 ['*.svgz', '*.svg', '*.png', 'LICENSE*.*', 'readme.txt'])
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3019
diff changeset
780 copyTree(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
781 os.path.join(eric6SourceDir, "pixmaps"),
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
782 cfg['ericPixDir'],
6760
448de556dd34 Updated Russian translations.
Alexander Barkoff
parents: 6664
diff changeset
783 ['*.svgz', '*.svg', '*.png', '*.xpm', '*.ico', '*.gif'])
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3019
diff changeset
784 copyTree(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
785 os.path.join(eric6SourceDir, "DesignerTemplates"),
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
786 cfg['ericTemplatesDir'],
433
988006cb898f Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 390
diff changeset
787 ['*.tmpl'])
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3019
diff changeset
788 copyTree(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
789 os.path.join(eric6SourceDir, "CodeTemplates"),
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
790 cfg['ericCodeTemplatesDir'],
433
988006cb898f Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 390
diff changeset
791 ['*.tmpl'])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
792
7717
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
793 # copy some data files needed at various places
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
794 copyTree(
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
795 os.path.join(eric6SourceDir, "E5Network", "data"),
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
796 os.path.join(cfg['ericDir'], "E5Network", "data"),
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
797 ['*.dat', '*.txt'])
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
798 copyTree(
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
799 os.path.join(eric6SourceDir, "IconEditor", "cursors"),
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
800 os.path.join(cfg['ericDir'], "IconEditor", "cursors"),
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
801 ['*.xpm'])
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
802 copyTree(
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
803 os.path.join(eric6SourceDir, "UI", "data"),
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
804 os.path.join(cfg['ericDir'], "UI", "data"),
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
805 ['*.css'])
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
806 copyTree(
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
807 os.path.join(eric6SourceDir, "WebBrowser"),
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
808 os.path.join(cfg['ericDir'], "WebBrowser"),
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
809 ['*.xbel', '*.xml', '*.html', '*.png', '*.gif', '*.js'])
f32d7965a17e Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7716
diff changeset
810
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
811 # copy the wrappers
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
812 for wname in wnames:
2177
a59ffbc5fe4c Fixed an error in the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2160
diff changeset
813 shutilCopy(wname, cfg['bindir'], perm=0o755)
622
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
814 os.remove(wname)
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
815 shutil.rmtree(scriptsDir)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
816
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
817 # copy the license file
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
818 shutilCopy(os.path.join(sourceDir, "docs", "LICENSE.GPL3"),
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
819 cfg['ericDir'])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
820
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
821 # create the global plugins directory
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
822 createGlobalPluginsDir()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
823
2420
c5a0bc75d5b6 Fixed an issue in the install script.
"Detlev Offenbach <detlev@die-offenbachs.de>"
parents: 2411
diff changeset
824 except (IOError, OSError) as msg:
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
825 sys.stderr.write(
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
826 'Error: {0}\nTry install with admin rights.\n'.format(msg))
2383
e999256385bd Extended the installation routine by the creation of a desktop file for the eric5 web browser.
"Detlev Offenbach <detlev@die-offenbachs.de>"
parents: 2312
diff changeset
827 return(7)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
828
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
829 # copy some text files to the doc area
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
830 for name in ["LICENSE.GPL3", "THANKS", "changelog"]:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
831 try:
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
832 shutilCopy(os.path.join(sourceDir, "docs", name),
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
833 cfg['ericDocDir'])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
834 except EnvironmentError:
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
835 print("Could not install '{0}'.".format(
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
836 os.path.join(sourceDir, "docs", name)))
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
837 for name in glob.glob(os.path.join(sourceDir, 'docs', 'README*.*')):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
838 try:
2160
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
839 shutilCopy(name, cfg['ericDocDir'])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
840 except EnvironmentError:
4512
23e8b848efb0 Fixed some incorrect string format strings using the new checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4456
diff changeset
841 print("Could not install '{0}'.".format(name))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
842
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
843 # copy some more stuff
1455
f708ac785a89 Corrected the install script for the QScintilla 2.6 changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1410
diff changeset
844 for name in ['default.e4k', 'default_Mac.e4k']:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
845 try:
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
846 shutilCopy(os.path.join(sourceDir, "others", name),
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
847 cfg['ericOthersDir'])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
848 except EnvironmentError:
6960
1d4e02425869 install.py: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6956
diff changeset
849 print("Could not install '{0}'.".format(
1d4e02425869 install.py: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6956
diff changeset
850 os.path.join(sourceDir, "others", name)))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
851
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
852 # install the API file
3943
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
853 if installApis:
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
854 for progLanguage in progLanguages:
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
855 apidir = os.path.join(cfg['apidir'], progLanguage.lower())
6214
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
856 print("Installing {0} API files to '{1}'.".format(
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
857 progLanguage, apidir))
3943
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
858 if not os.path.exists(apidir):
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
859 os.makedirs(apidir)
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
860 for apiName in glob.glob(os.path.join(eric6SourceDir, "APIs",
3943
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
861 progLanguage, "*.api")):
40
c2e5472b112c Changed some code to adjust eric5 to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
862 try:
2160
1874d4410904 Changed the install script to ensure proper permissions of the installed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2145
diff changeset
863 shutilCopy(apiName, apidir)
40
c2e5472b112c Changed some code to adjust eric5 to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
864 except EnvironmentError:
6214
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
865 print("Could not install '{0}' (no permission)."
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
866 .format(apiName))
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
867 for apiName in glob.glob(os.path.join(eric6SourceDir, "APIs",
3943
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
868 progLanguage, "*.bas")):
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
869 try:
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
870 shutilCopy(apiName, apidir)
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
871 except EnvironmentError:
6214
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
872 print("Could not install '{0}' (no permission)."
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
873 .format(apiName))
3943
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
874 if progLanguage == "Python":
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
875 # copy Python3 API files to the same destination
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
876 for apiName in glob.glob(os.path.join(eric6SourceDir, "APIs",
3943
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
877 "Python3", "*.api")):
3697
c947a7eaace4 Updated the base classes files and modified the install and uninstall scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3693
diff changeset
878 try:
c947a7eaace4 Updated the base classes files and modified the install and uninstall scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3693
diff changeset
879 shutilCopy(apiName, apidir)
c947a7eaace4 Updated the base classes files and modified the install and uninstall scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3693
diff changeset
880 except EnvironmentError:
6214
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
881 print("Could not install '{0}' (no permission)."
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
882 .format(apiName))
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
883 for apiName in glob.glob(os.path.join(eric6SourceDir, "APIs",
3943
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
884 "Python3", "*.bas")):
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
885 if os.path.exists(os.path.join(
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
886 apidir, os.path.basename(
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
887 apiName.replace(".bas", ".api")))):
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
888 try:
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
889 shutilCopy(apiName, apidir)
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
890 except EnvironmentError:
6214
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
891 print("Could not install '{0}' (no permission)."
89a53d80e729 install, uninstall: Modified the install and uninstall scripts such, that they can be used without being administrator (i.e. if installing into a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6213
diff changeset
892 .format(apiName))
7178
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
893
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
894 # copy MicroPython API files to the same destination
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
895 for apiName in glob.glob(os.path.join(eric6SourceDir, "APIs",
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
896 "MicroPython", "*.api")):
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
897 try:
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
898 shutilCopy(apiName, apidir)
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
899 except EnvironmentError:
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
900 print("Could not install '{0}' (no permission)."
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
901 .format(apiName))
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
902 for apiName in glob.glob(os.path.join(eric6SourceDir, "APIs",
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
903 "MicroPython", "*.bas")):
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
904 if os.path.exists(os.path.join(
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
905 apidir, os.path.basename(
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
906 apiName.replace(".bas", ".api")))):
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
907 try:
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
908 shutilCopy(apiName, apidir)
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
909 except EnvironmentError:
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
910 print("Could not install '{0}' (no permission)."
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
911 .format(apiName))
146
afeb742e7148 Added installation of a .desktop file for Linux systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 133
diff changeset
912
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
913 # Create menu entry for Linux systems
146
afeb742e7148 Added installation of a .desktop file for Linux systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 133
diff changeset
914 if sys.platform.startswith("linux"):
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
915 createLinuxSpecifics()
3931
ff8e034662d6 Modified the install script to allow parallel installation for Python2 and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3897
diff changeset
916
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
917 # Create Desktop and Start Menu entries for Windows systems
6510
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
918 elif sys.platform.startswith(("win", "cygwin")):
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
919 createWindowsLinks()
1387
1734bc5f4f82 Mac related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1385
diff changeset
920
1390
f4a7915db1e6 Fixed the Mac part of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1389
diff changeset
921 # Create a Mac application bundle
6510
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
922 elif sys.platform == "darwin":
1390
f4a7915db1e6 Fixed the Mac part of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1389
diff changeset
923 createMacAppBundle(cfg['ericDir'])
2383
e999256385bd Extended the installation routine by the creation of a desktop file for the eric5 web browser.
"Detlev Offenbach <detlev@die-offenbachs.de>"
parents: 2312
diff changeset
924
e999256385bd Extended the installation routine by the creation of a desktop file for the eric5 web browser.
"Detlev Offenbach <detlev@die-offenbachs.de>"
parents: 2312
diff changeset
925 return 0
1387
1734bc5f4f82 Mac related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1385
diff changeset
926
1734bc5f4f82 Mac related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1385
diff changeset
927
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
928 def createLinuxSpecifics():
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
929 """
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
930 Install Linux specific files.
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
931 """
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
932 global distDir, sourceDir
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
933
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
934 if distDir:
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
935 dst = os.path.normpath(os.path.join(distDir, "usr/share/pixmaps"))
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
936 if not os.path.exists(dst):
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
937 os.makedirs(dst)
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
938 shutilCopy(
7519
0e93f5167e71 install.py: fixed an issue caused by renaming the old 'default' icon directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7453
diff changeset
939 os.path.join(eric6SourceDir, "pixmaps", "eric_icon.png"),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
940 os.path.join(dst, "eric.png"))
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
941 shutilCopy(
7519
0e93f5167e71 install.py: fixed an issue caused by renaming the old 'default' icon directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7453
diff changeset
942 os.path.join(eric6SourceDir, "pixmaps", "ericWeb48_icon.png"),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
943 os.path.join(dst, "ericWeb.png"))
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
944 dst = os.path.normpath(
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
945 os.path.join(distDir, "usr/share/applications"))
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
946 if not os.path.exists(dst):
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
947 os.makedirs(dst)
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
948 copyDesktopFile(os.path.join(sourceDir, "linux", "eric6.desktop.in"),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
949 os.path.join(dst, "eric6.desktop"))
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
950 copyDesktopFile(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
951 os.path.join(sourceDir, "linux", "eric6_browser.desktop.in"),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
952 os.path.join(dst, "eric6_browser.desktop"))
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
953 dst = os.path.normpath(
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
954 os.path.join(distDir, "usr/share/metainfo"))
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
955 if not os.path.exists(dst):
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
956 os.makedirs(dst)
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
957 copyAppStreamFile(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
958 os.path.join(sourceDir, "linux", "eric6.appdata.xml.in"),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
959 os.path.join(dst, "eric6.appdata.xml"))
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
960 elif os.getuid() == 0:
7519
0e93f5167e71 install.py: fixed an issue caused by renaming the old 'default' icon directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7453
diff changeset
961 shutilCopy(
0e93f5167e71 install.py: fixed an issue caused by renaming the old 'default' icon directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7453
diff changeset
962 os.path.join(eric6SourceDir, "pixmaps", "eric_icon.png"),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
963 "/usr/share/pixmaps/eric.png")
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
964 copyDesktopFile(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
965 os.path.join(sourceDir, "linux", "eric6.desktop.in"),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
966 "/usr/share/applications/eric6.desktop")
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
967 if os.path.exists("/usr/share/metainfo"):
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
968 copyAppStreamFile(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
969 os.path.join(sourceDir, "linux", "eric6.appdata.xml.in"),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
970 "/usr/share/metainfo/eric6.appdata.xml")
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
971 elif os.path.exists("/usr/share/appdata"):
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
972 copyAppStreamFile(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
973 os.path.join(sourceDir, "linux", "eric6.appdata.xml.in"),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
974 "/usr/share/appdata/eric6.appdata.xml")
7519
0e93f5167e71 install.py: fixed an issue caused by renaming the old 'default' icon directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7453
diff changeset
975 shutilCopy(
0e93f5167e71 install.py: fixed an issue caused by renaming the old 'default' icon directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7453
diff changeset
976 os.path.join(eric6SourceDir, "pixmaps", "ericWeb48_icon.png"),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
977 "/usr/share/pixmaps/ericWeb.png")
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
978 copyDesktopFile(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
979 os.path.join(sourceDir, "linux", "eric6_browser.desktop.in"),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
980 "/usr/share/applications/eric6_browser.desktop")
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
981 elif os.getuid() >= 1000:
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
982 # it is assumed, that user ids start at 1000
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
983 localPath = os.path.join(os.path.expanduser("~"),
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
984 ".local", "share")
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
985 # create directories first
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
986 for directory in [os.path.join(localPath, name)
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
987 for name in ("pixmaps", "applications",
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
988 "metainfo", "appdata")]:
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
989 if not os.path.isdir(directory):
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
990 os.makedirs(directory)
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
991 # now copy the files
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
992 shutilCopy(
7519
0e93f5167e71 install.py: fixed an issue caused by renaming the old 'default' icon directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7453
diff changeset
993 os.path.join(eric6SourceDir, "pixmaps", "eric_icon.png"),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
994 os.path.join(localPath, "pixmaps", "eric.png"))
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
995 copyDesktopFile(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
996 os.path.join(sourceDir, "linux", "eric6.desktop.in"),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
997 os.path.join(localPath, "applications", "eric6.desktop"))
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
998 copyAppStreamFile(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
999 os.path.join(sourceDir, "linux", "eric6.appdata.xml.in"),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1000 os.path.join(localPath, "metainfo", "eric6.appdata.xml"))
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1001 copyAppStreamFile(
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1002 os.path.join(sourceDir, "linux", "eric6.appdata.xml.in"),
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1003 os.path.join(localPath, "appdata", "eric6.appdata.xml"))
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
1004 shutilCopy(
7519
0e93f5167e71 install.py: fixed an issue caused by renaming the old 'default' icon directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7453
diff changeset
1005 os.path.join(eric6SourceDir, "pixmaps", "ericWeb48_icon.png"),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1006 os.path.join(localPath, "pixmaps", "ericWeb.png"))
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
1007 copyDesktopFile(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1008 os.path.join(sourceDir, "linux", "eric6_browser.desktop.in"),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1009 os.path.join(localPath, "applications", "eric6_browser.desktop"))
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
1010
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
1011
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
1012 def createWindowsLinks():
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
1013 """
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
1014 Create Desktop and Start Menu links.
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
1015 """
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
1016 try:
6510
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1017 # check, if pywin32 is available
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1018 from win32com.client import Dispatch # __IGNORE_WARNING__
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
1019 except ImportError:
6592
bba271a63b81 install: added capability to install the pywin32 package upon request in order to create shortcut links.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6530
diff changeset
1020 installed = pipInstall(
bba271a63b81 install: added capability to install the pywin32 package upon request in order to create shortcut links.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6530
diff changeset
1021 "pywin32",
bba271a63b81 install: added capability to install the pywin32 package upon request in order to create shortcut links.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6530
diff changeset
1022 "\nThe Python package 'pywin32' could not be imported."
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
1023 )
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6593
diff changeset
1024 if installed:
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6593
diff changeset
1025 # create the links via an external script to get around some
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6593
diff changeset
1026 # startup magic done by pywin32.pth
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6593
diff changeset
1027 args = [
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6593
diff changeset
1028 sys.executable,
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6593
diff changeset
1029 os.path.join(os.path.dirname(__file__),
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6593
diff changeset
1030 "create_windows_links.py"),
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6593
diff changeset
1031 ]
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7584
diff changeset
1032 subprocess.call(args) # secok
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6593
diff changeset
1033 else:
6592
bba271a63b81 install: added capability to install the pywin32 package upon request in order to create shortcut links.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6530
diff changeset
1034 print(
bba271a63b81 install: added capability to install the pywin32 package upon request in order to create shortcut links.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6530
diff changeset
1035 "\nThe Python package 'pywin32' is not installed. Desktop and"
bba271a63b81 install: added capability to install the pywin32 package upon request in order to create shortcut links.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6530
diff changeset
1036 " Start Menu entries will not be created."
bba271a63b81 install: added capability to install the pywin32 package upon request in order to create shortcut links.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6530
diff changeset
1037 )
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6593
diff changeset
1038 return
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1039
7257
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1040 regPath = (
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1041 "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer" +
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1042 "\\User Shell Folders"
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1043 )
6510
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1044
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1045 # 1. create desktop shortcuts
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1046 regName = "Desktop"
7566
7845da7a7ec2 install.py: added fault handler for desktop shortcut creation on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7519
diff changeset
1047 desktopEntry = getWinregEntry(regName, regPath)
7845da7a7ec2 install.py: added fault handler for desktop shortcut creation on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7519
diff changeset
1048 if desktopEntry:
7845da7a7ec2 install.py: added fault handler for desktop shortcut creation on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7519
diff changeset
1049 desktopFolder = os.path.normpath(os.path.expandvars(desktopEntry))
7845da7a7ec2 install.py: added fault handler for desktop shortcut creation on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7519
diff changeset
1050 for linkName, targetPath, iconPath in windowsDesktopEntries():
7845da7a7ec2 install.py: added fault handler for desktop shortcut creation on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7519
diff changeset
1051 linkPath = os.path.join(desktopFolder, linkName)
7845da7a7ec2 install.py: added fault handler for desktop shortcut creation on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7519
diff changeset
1052 createWindowsShortcut(linkPath, targetPath, iconPath)
6510
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1053
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1054 # 2. create start menu entry and shortcuts
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1055 regName = "Programs"
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1056 programsEntry = getWinregEntry(regName, regPath)
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1057 if programsEntry:
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1058 programsFolder = os.path.normpath(os.path.expandvars(programsEntry))
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1059 eric6EntryPath = os.path.join(programsFolder, windowsProgramsEntry())
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1060 if not os.path.exists(eric6EntryPath):
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1061 try:
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1062 os.makedirs(eric6EntryPath)
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1063 except EnvironmentError:
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1064 # maybe restrictions prohibited link creation
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1065 return
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1066
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1067 for linkName, targetPath, iconPath in windowsDesktopEntries():
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1068 linkPath = os.path.join(eric6EntryPath, linkName)
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1069 createWindowsShortcut(linkPath, targetPath, iconPath)
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
1070
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
1071
1390
f4a7915db1e6 Fixed the Mac part of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1389
diff changeset
1072 def createMacAppBundle(pydir):
1387
1734bc5f4f82 Mac related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1385
diff changeset
1073 """
1734bc5f4f82 Mac related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1385
diff changeset
1074 Create a Mac application bundle.
1390
f4a7915db1e6 Fixed the Mac part of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1389
diff changeset
1075
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
1076 @param pydir the name of the directory where the Python script will
6500
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
1077 eventually be installed
0373580fc86c install.py, uninstall.py: performed some refactorings and prepared to create links on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6495
diff changeset
1078 @type str
1387
1734bc5f4f82 Mac related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1385
diff changeset
1079 """
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1080 global cfg, macAppBundleName, macPythonExe, macAppBundlePath
1387
1734bc5f4f82 Mac related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1385
diff changeset
1081
7141
a479c75c6643 install.py: fixed an issue causing installation to fail in certain situations on macOS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7121
diff changeset
1082 directories = {
3507
b09e10d4f343 Changed the install script to accept a '-n' option to set the name of the directory where the Mac application bundle should be created in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3468
diff changeset
1083 "contents": "{0}/{1}/Contents/".format(
b09e10d4f343 Changed the install script to accept a '-n' option to set the name of the directory where the Mac application bundle should be created in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3468
diff changeset
1084 macAppBundlePath, macAppBundleName),
b09e10d4f343 Changed the install script to accept a '-n' option to set the name of the directory where the Mac application bundle should be created in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3468
diff changeset
1085 "exe": "{0}/{1}/Contents/MacOS".format(
b09e10d4f343 Changed the install script to accept a '-n' option to set the name of the directory where the Mac application bundle should be created in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3468
diff changeset
1086 macAppBundlePath, macAppBundleName),
b09e10d4f343 Changed the install script to accept a '-n' option to set the name of the directory where the Mac application bundle should be created in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3468
diff changeset
1087 "icns": "{0}/{1}/Contents/Resources".format(
b09e10d4f343 Changed the install script to accept a '-n' option to set the name of the directory where the Mac application bundle should be created in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3468
diff changeset
1088 macAppBundlePath, macAppBundleName)
b09e10d4f343 Changed the install script to accept a '-n' option to set the name of the directory where the Mac application bundle should be created in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3468
diff changeset
1089 }
7227
5ba312e6599a install.py: fixed an issue causing installation on macOS to fail.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7220
diff changeset
1090 for directory in directories.values():
7141
a479c75c6643 install.py: fixed an issue causing installation to fail in certain situations on macOS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7121
diff changeset
1091 if not os.path.exists(directory):
a479c75c6643 install.py: fixed an issue causing installation to fail in certain situations on macOS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7121
diff changeset
1092 os.makedirs(directory)
1390
f4a7915db1e6 Fixed the Mac part of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1389
diff changeset
1093
7584
328d92d8db48 install: fixed an issue causing a faulty application bundle being created for macOS installations when installing into a Python virtual environment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7566
diff changeset
1094 if macPythonExe == defaultMacPythonExe and macPythonExe:
7141
a479c75c6643 install.py: fixed an issue causing installation to fail in certain situations on macOS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7121
diff changeset
1095 starter = os.path.join(directories["exe"], "eric")
2308
f83826045e51 Change install.py for Mac again.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2307
diff changeset
1096 os.symlink(macPythonExe, starter)
f83826045e51 Change install.py for Mac again.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2307
diff changeset
1097 else:
3612
786d97a08a14 Extended the install script and fixed a few issue related to installations with Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3609
diff changeset
1098 starter = "python{0}".format(sys.version_info.major)
1488
de290ce82a75 Finally managed the issue with showing the correct name for the Mac OS X application menu entry in the main menu bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1474
diff changeset
1099
7141
a479c75c6643 install.py: fixed an issue causing installation to fail in certain situations on macOS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7121
diff changeset
1100 wname = os.path.join(directories["exe"], "eric6")
4374
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1101
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1102 # determine entry for DYLD_FRAMEWORK_PATH
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1103 dyldLine = ""
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1104 try:
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1105 from PyQt5.QtCore import QLibraryInfo
4374
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1106 qtLibraryDir = QLibraryInfo.location(QLibraryInfo.LibrariesPath)
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1107 except ImportError:
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1108 qtLibraryDir = ""
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1109 if qtLibraryDir:
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1110 dyldLine = "DYLD_FRAMEWORK_PATH={0}\n".format(qtLibraryDir)
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1111
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1112 # determine entry for PATH
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1113 pathLine = ""
1390
f4a7915db1e6 Fixed the Mac part of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1389
diff changeset
1114 path = os.getenv("PATH", "")
f4a7915db1e6 Fixed the Mac part of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1389
diff changeset
1115 if path:
f4a7915db1e6 Fixed the Mac part of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1389
diff changeset
1116 pybin = os.path.join(sys.exec_prefix, "bin")
f4a7915db1e6 Fixed the Mac part of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1389
diff changeset
1117 pathlist = path.split(os.pathsep)
4911
652cb0520e9a Improved the Mac app bundle creation function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4889
diff changeset
1118 pathlist_n = [pybin]
652cb0520e9a Improved the Mac app bundle creation function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4889
diff changeset
1119 for path_ in pathlist:
652cb0520e9a Improved the Mac app bundle creation function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4889
diff changeset
1120 if path_ and path_ not in pathlist_n:
652cb0520e9a Improved the Mac app bundle creation function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4889
diff changeset
1121 pathlist_n.append(path_)
652cb0520e9a Improved the Mac app bundle creation function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4889
diff changeset
1122 pathLine = "PATH={0}\n".format(os.pathsep.join(pathlist_n))
652cb0520e9a Improved the Mac app bundle creation function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4889
diff changeset
1123
652cb0520e9a Improved the Mac app bundle creation function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4889
diff changeset
1124 # create the wrapper script
4374
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1125 wrapper = ('''#!/bin/sh\n'''
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1126 '''\n'''
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1127 '''{0}'''
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1128 '''{1}'''
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1129 '''exec "{2}" "{3}/{4}.py" "$@"\n'''
627e3d0b4ba1 Changed the installer to create a Mac app bundle script containg a DYLD_FRAMEWORK_PATH line as recommended by PyQt for Qt 5.5.0 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4307
diff changeset
1130 .format(pathLine, dyldLine, starter, pydir, "eric6"))
1390
f4a7915db1e6 Fixed the Mac part of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1389
diff changeset
1131 copyToFile(wname, wrapper)
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7584
diff changeset
1132 os.chmod(wname, 0o755) # secok
1390
f4a7915db1e6 Fixed the Mac part of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1389
diff changeset
1133
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1134 shutilCopy(os.path.join(eric6SourceDir, "pixmaps", "eric_2.icns"),
7141
a479c75c6643 install.py: fixed an issue causing installation to fail in certain situations on macOS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7121
diff changeset
1135 os.path.join(directories["icns"], "eric.icns"))
1390
f4a7915db1e6 Fixed the Mac part of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1389
diff changeset
1136
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1137 if os.path.exists(os.path.join("eric", "eric6", "UI", "Info.py")):
6664
50c9c1c9cf30 install.py: extended and corrected the macOS application bundle generation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6663
diff changeset
1138 # Installing from archive
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1139 from eric.eric6.UI.Info import Version, CopyrightShort
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1140 elif os.path.exists(os.path.join("eric6", "UI", "Info.py")):
6664
50c9c1c9cf30 install.py: extended and corrected the macOS application bundle generation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6663
diff changeset
1141 # Installing from source tree
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1142 from eric6.UI.Info import Version, CopyrightShort
6664
50c9c1c9cf30 install.py: extended and corrected the macOS application bundle generation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6663
diff changeset
1143 else:
50c9c1c9cf30 install.py: extended and corrected the macOS application bundle generation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6663
diff changeset
1144 Version = "Unknown"
7360
9190402e4505 Updated copyright for 2020.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7333
diff changeset
1145 CopyrightShort = "(c) 2002 - 2020 Detlev Offenbach"
6664
50c9c1c9cf30 install.py: extended and corrected the macOS application bundle generation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6663
diff changeset
1146
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3019
diff changeset
1147 copyToFile(
7141
a479c75c6643 install.py: fixed an issue causing installation to fail in certain situations on macOS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7121
diff changeset
1148 os.path.join(directories["contents"], "Info.plist"),
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1149 '''<?xml version="1.0" encoding="UTF-8"?>\n'''
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1150 '''<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"\n'''
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1151 ''' "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n'''
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1152 '''<plist version="1.0">\n'''
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1153 '''<dict>\n'''
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1154 ''' <key>CFBundleExecutable</key>\n'''
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
1155 ''' <string>eric6</string>\n'''
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1156 ''' <key>CFBundleIconFile</key>\n'''
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1157 ''' <string>eric.icns</string>\n'''
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1158 ''' <key>CFBundleInfoDictionaryVersion</key>\n'''
6664
50c9c1c9cf30 install.py: extended and corrected the macOS application bundle generation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6663
diff changeset
1159 ''' <string>{1}</string>\n'''
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1160 ''' <key>CFBundleName</key>\n'''
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1161 ''' <string>{0}</string>\n'''
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1162 ''' <key>CFBundleDisplayName</key>\n'''
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1163 ''' <string>{0}</string>\n'''
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1164 ''' <key>CFBundlePackageType</key>\n'''
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1165 ''' <string>APPL</string>\n'''
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1166 ''' <key>CFBundleSignature</key>\n'''
6664
50c9c1c9cf30 install.py: extended and corrected the macOS application bundle generation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6663
diff changeset
1167 ''' <string>ERIC-IDE</string>\n'''
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1168 ''' <key>CFBundleVersion</key>\n'''
6664
50c9c1c9cf30 install.py: extended and corrected the macOS application bundle generation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6663
diff changeset
1169 ''' <string>{1}</string>\n'''
50c9c1c9cf30 install.py: extended and corrected the macOS application bundle generation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6663
diff changeset
1170 ''' <key>CFBundleGetInfoString</key>\n'''
50c9c1c9cf30 install.py: extended and corrected the macOS application bundle generation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6663
diff changeset
1171 ''' <string>{1}, {2}</string>\n'''
3950
6819272cafd5 Fixed an issue in the install script creating the Mac application bundle file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3948
diff changeset
1172 ''' <key>CFBundleIdentifier</key>\n'''
3897
ae4d4d69ad40 Extended the Mac Info.plist file contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3807
diff changeset
1173 ''' <string>org.python-projects.eric-ide</string>\n'''
7039
73cb6384a71f install.py: added a Info.plist entry to support macOS Dark Theme.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6960
diff changeset
1174 ''' <key>NSRequiresAquaSystemAppearance</key>\n'''
73cb6384a71f install.py: added a Info.plist entry to support macOS Dark Theme.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6960
diff changeset
1175 ''' <string>false</string>\n'''
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1176 '''</dict>\n'''
6664
50c9c1c9cf30 install.py: extended and corrected the macOS application bundle generation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6663
diff changeset
1177 '''</plist>\n'''.format(
50c9c1c9cf30 install.py: extended and corrected the macOS application bundle generation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6663
diff changeset
1178 macAppBundleName.replace(".app", ""),
50c9c1c9cf30 install.py: extended and corrected the macOS application bundle generation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6663
diff changeset
1179 Version.split(None, 1)[0],
50c9c1c9cf30 install.py: extended and corrected the macOS application bundle generation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6663
diff changeset
1180 CopyrightShort))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1181
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1182
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1183 def createInstallConfig():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1184 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1185 Create the installation config dictionary.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1186 """
3948
6c3720179d6b Extended the install script to improve cooperation with packagers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3943
diff changeset
1187 global modDir, platBinDir, cfg, apisDir, installApis
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1188
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
1189 ericdir = os.path.join(modDir, "eric6")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1190 cfg = {
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1191 'ericDir': ericdir,
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1192 'ericPixDir': os.path.join(ericdir, "pixmaps"),
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1193 'ericIconDir': os.path.join(ericdir, "icons"),
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1194 'ericDTDDir': os.path.join(ericdir, "DTDs"),
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1195 'ericCSSDir': os.path.join(ericdir, "CSSs"),
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1196 'ericStylesDir': os.path.join(ericdir, "Styles"),
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1197 'ericDocDir': os.path.join(ericdir, "Documentation"),
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1198 'ericExamplesDir': os.path.join(ericdir, "Examples"),
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1199 'ericTranslationsDir': os.path.join(ericdir, "i18n"),
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1200 'ericTemplatesDir': os.path.join(ericdir, "DesignerTemplates"),
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1201 'ericCodeTemplatesDir': os.path.join(ericdir, 'CodeTemplates'),
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1202 'ericOthersDir': ericdir,
2586
d6daabefb7a6 Reverted some of the install.py changes for Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2583
diff changeset
1203 'bindir': platBinDir,
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1204 'mdir': modDir,
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1205 }
3948
6c3720179d6b Extended the install script to improve cooperation with packagers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3943
diff changeset
1206 if installApis:
6c3720179d6b Extended the install script to improve cooperation with packagers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3943
diff changeset
1207 if apisDir:
6c3720179d6b Extended the install script to improve cooperation with packagers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3943
diff changeset
1208 cfg['apidir'] = apisDir
6c3720179d6b Extended the install script to improve cooperation with packagers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3943
diff changeset
1209 else:
6c3720179d6b Extended the install script to improve cooperation with packagers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3943
diff changeset
1210 cfg['apidir'] = os.path.join(ericdir, "api")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1211 else:
3948
6c3720179d6b Extended the install script to improve cooperation with packagers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3943
diff changeset
1212 cfg['apidir'] = ""
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1213 configLength = 15
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1214
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1215
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1216 def createConfig():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1217 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1218 Create a config file with the respective config entries.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1219 """
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1220 global cfg, macAppBundlePath, configName
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1221
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1222 apis = []
3948
6c3720179d6b Extended the install script to improve cooperation with packagers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3943
diff changeset
1223 if installApis:
6c3720179d6b Extended the install script to improve cooperation with packagers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3943
diff changeset
1224 for progLanguage in progLanguages:
6960
1d4e02425869 install.py: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6956
diff changeset
1225 for apiName in sorted(
1d4e02425869 install.py: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6956
diff changeset
1226 glob.glob(os.path.join(eric6SourceDir, "APIs", progLanguage,
1d4e02425869 install.py: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6956
diff changeset
1227 "*.api"))):
40
c2e5472b112c Changed some code to adjust eric5 to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
1228 apis.append(os.path.basename(apiName))
3948
6c3720179d6b Extended the install script to improve cooperation with packagers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3943
diff changeset
1229 if progLanguage == "Python":
6c3720179d6b Extended the install script to improve cooperation with packagers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3943
diff changeset
1230 # treat Python3 API files the same as Python API files
6960
1d4e02425869 install.py: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6956
diff changeset
1231 for apiName in sorted(
1d4e02425869 install.py: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6956
diff changeset
1232 glob.glob(os.path.join(eric6SourceDir, "APIs", "Python3",
1d4e02425869 install.py: fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6956
diff changeset
1233 "*.api"))):
3948
6c3720179d6b Extended the install script to improve cooperation with packagers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3943
diff changeset
1234 apis.append(os.path.basename(apiName))
7178
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
1235
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
1236 # treat MicroPython API files the same as Python API files
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
1237 for apiName in sorted(
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
1238 glob.glob(os.path.join(eric6SourceDir, "APIs",
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
1239 "MicroPython", "*.api"))):
43e994af5ee0 MicroPython: added more MicroPython type related handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7141
diff changeset
1240 apis.append(os.path.basename(apiName))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1241
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1242 config = (
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1243 """# -*- coding: utf-8 -*-\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1244 """#\n"""
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
1245 """# This module contains the configuration of the individual eric6"""
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1246 """ installation\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1247 """#\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1248 """\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1249 """_pkg_config = {{\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1250 """ 'ericDir': r'{0}',\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1251 """ 'ericPixDir': r'{1}',\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1252 """ 'ericIconDir': r'{2}',\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1253 """ 'ericDTDDir': r'{3}',\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1254 """ 'ericCSSDir': r'{4}',\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1255 """ 'ericStylesDir': r'{5}',\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1256 """ 'ericDocDir': r'{6}',\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1257 """ 'ericExamplesDir': r'{7}',\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1258 """ 'ericTranslationsDir': r'{8}',\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1259 """ 'ericTemplatesDir': r'{9}',\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1260 """ 'ericCodeTemplatesDir': r'{10}',\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1261 """ 'ericOthersDir': r'{11}',\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1262 """ 'bindir': r'{12}',\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1263 """ 'mdir': r'{13}',\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1264 """ 'apidir': r'{14}',\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1265 """ 'apis': {15},\n"""
3508
4861f0bb3509 Corrected the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3507
diff changeset
1266 """ 'macAppBundlePath': r'{16}',\n"""
4861f0bb3509 Corrected the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3507
diff changeset
1267 """ 'macAppBundleName': r'{17}',\n"""
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1268 """}}\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1269 """\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1270 """def getConfig(name):\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1271 """ '''\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1272 """ Module function to get a configuration value.\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1273 """\n"""
5628
3a1bef0560b1 Corrected some left overs of a failed installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5597
diff changeset
1274 """ @param name name of the configuration value"""
3a1bef0560b1 Corrected some left overs of a failed installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5597
diff changeset
1275 """ @type str\n"""
3a1bef0560b1 Corrected some left overs of a failed installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5597
diff changeset
1276 """ @exception AttributeError raised to indicate an invalid"""
3a1bef0560b1 Corrected some left overs of a failed installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5597
diff changeset
1277 """ config entry\n"""
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1278 """ '''\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1279 """ try:\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1280 """ return _pkg_config[name]\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1281 """ except KeyError:\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1282 """ pass\n"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1283 """\n"""
5628
3a1bef0560b1 Corrected some left overs of a failed installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5597
diff changeset
1284 """ raise AttributeError(\n"""
3a1bef0560b1 Corrected some left overs of a failed installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5597
diff changeset
1285 """ '"{{0}}" is not a valid configuration value'"""
3a1bef0560b1 Corrected some left overs of a failed installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5597
diff changeset
1286 """.format(name))\n"""
3507
b09e10d4f343 Changed the install script to accept a '-n' option to set the name of the directory where the Mac application bundle should be created in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3468
diff changeset
1287 ).format(
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1288 cfg['ericDir'], cfg['ericPixDir'], cfg['ericIconDir'],
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1289 cfg['ericDTDDir'], cfg['ericCSSDir'],
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1290 cfg['ericStylesDir'], cfg['ericDocDir'],
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1291 cfg['ericExamplesDir'], cfg['ericTranslationsDir'],
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1292 cfg['ericTemplatesDir'],
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1293 cfg['ericCodeTemplatesDir'], cfg['ericOthersDir'],
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1294 cfg['bindir'], cfg['mdir'],
5652
d1b65f380408 Introduced a change in the install.py script for the Reproducible Builds effort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5651
diff changeset
1295 cfg['apidir'], sorted(apis),
3507
b09e10d4f343 Changed the install script to accept a '-n' option to set the name of the directory where the Mac application bundle should be created in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3468
diff changeset
1296 macAppBundlePath, macAppBundleName,
b09e10d4f343 Changed the install script to accept a '-n' option to set the name of the directory where the Mac application bundle should be created in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3468
diff changeset
1297 )
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1298 copyToFile(configName, config)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1299
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1300
6211
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1301 def pipInstall(packageName, message):
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1302 """
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1303 Install the given package via pip.
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1304
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1305 @param packageName name of the package to be installed
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1306 @type str
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1307 @param message message to be shown to the user
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1308 @type str
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1309 @return flag indicating a successful installation
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1310 @rtype bool
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1311 """
7333
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
1312 global yes2All
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
1313
6211
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1314 ok = False
7333
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
1315 if yes2All:
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
1316 answer = "y"
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
1317 else:
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
1318 print("{0}\n\nShall '{1}' be installed using pip? (Y/n)"
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
1319 .format(message, packageName), end=" ")
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7584
diff changeset
1320 answer = input() # secok
6211
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1321 if answer in ("", "Y", "y"):
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7584
diff changeset
1322 exitCode = subprocess.call( # secok
6211
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1323 [sys.executable, "-m", "pip", "install", packageName])
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1324 ok = (exitCode == 0)
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1325
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1326 return ok
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1327
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1328
7453
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1329 def isPipOutdated():
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1330 """
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1331 Check, if pip is outdated.
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1332
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1333 @return flag indicating an outdated pip
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1334 @rtype bool
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1335 """
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1336 try:
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7584
diff changeset
1337 pipOut = subprocess.check_output([ # secok
7453
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1338 sys.executable, "-m", "pip", "list", "--outdated",
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1339 "--format=json"
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1340 ])
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1341 pipOut = pipOut.decode()
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1342 except (OSError, subprocess.CalledProcessError):
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1343 pipOut = "[]" # default empty list
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1344 try:
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1345 jsonList = json.loads(pipOut)
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1346 except Exception:
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1347 jsonList = []
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1348 for package in jsonList:
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1349 if isinstance(package, dict) and package["name"] == "pip":
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1350 print("'pip' is outdated (installed {0}, available {1})".format(
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1351 package["version"], package["latest_version"]
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1352 ))
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1353 return True
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1354
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1355 return False
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1356
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1357
7448
29b54296cf8c install script: added option to update pip before testing the version of the prerequisite tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
1358 def updatePip():
29b54296cf8c install script: added option to update pip before testing the version of the prerequisite tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
1359 """
29b54296cf8c install script: added option to update pip before testing the version of the prerequisite tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
1360 Update the installed pip package.
29b54296cf8c install script: added option to update pip before testing the version of the prerequisite tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
1361 """
29b54296cf8c install script: added option to update pip before testing the version of the prerequisite tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
1362 global yes2All
29b54296cf8c install script: added option to update pip before testing the version of the prerequisite tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
1363
29b54296cf8c install script: added option to update pip before testing the version of the prerequisite tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
1364 if yes2All:
29b54296cf8c install script: added option to update pip before testing the version of the prerequisite tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
1365 answer = "y"
29b54296cf8c install script: added option to update pip before testing the version of the prerequisite tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
1366 else:
29b54296cf8c install script: added option to update pip before testing the version of the prerequisite tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
1367 print("Shall 'pip' be updated (recommended)? (Y/n)", end=" ")
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7584
diff changeset
1368 answer = input() # secok
7448
29b54296cf8c install script: added option to update pip before testing the version of the prerequisite tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
1369 if answer in ("", "Y", "y"):
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7584
diff changeset
1370 subprocess.call( # secok
7448
29b54296cf8c install script: added option to update pip before testing the version of the prerequisite tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
1371 [sys.executable, "-m", "pip", "install", "--upgrade", "pip"])
29b54296cf8c install script: added option to update pip before testing the version of the prerequisite tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
1372
29b54296cf8c install script: added option to update pip before testing the version of the prerequisite tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
1373
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1374 def doDependancyChecks():
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1375 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1376 Perform some dependency checks.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1377 """
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1378 print('Checking dependencies')
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1379
7448
29b54296cf8c install script: added option to update pip before testing the version of the prerequisite tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
1380 # update pip first even if we don't need to install anything
7453
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1381 if isPipOutdated():
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1382 updatePip()
54431a52b7f2 install.py: refined the pip update process
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7448
diff changeset
1383 print("\n")
7448
29b54296cf8c install script: added option to update pip before testing the version of the prerequisite tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
1384
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1385 # perform dependency checks
4173
10336d4d1488 Modified install script to show the version info before giving an error in case of unsuitable versions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4054
diff changeset
1386 print("Python Version: {0:d}.{1:d}.{2:d}".format(*sys.version_info[:3]))
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1387 if sys.version_info < (3, 5, 0):
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1388 print('Sorry, you must have Python 3.5.0 or higher.')
390
daa7c6ae6248 Change install script to always keep it open on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 386
diff changeset
1389 exit(5)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1390
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1391 try:
1525
1c7bd9144f43 Updated the install script to check for the presence of the xml.etree package, which is sometimes included in a separate installation package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
1392 import xml.etree # __IGNORE_WARNING__
6360
73033fa6a99c Fixed some pyflakes warnings detected by the upgraded version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6347
diff changeset
1393 except ImportError:
2680
110ac646a3a0 Fixes for TabNanny and some code cleanup. Source doku regenerated.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2677
diff changeset
1394 print('Your Python installation is missing the XML module.')
1525
1c7bd9144f43 Updated the install script to check for the presence of the xml.etree package, which is sometimes included in a separate installation package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
1395 print('Please install it and try again.')
1c7bd9144f43 Updated the install script to check for the presence of the xml.etree package, which is sometimes included in a separate installation package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
1396 exit(5)
1c7bd9144f43 Updated the install script to check for the presence of the xml.etree package, which is sometimes included in a separate installation package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
1397
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1398 try:
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1399 from PyQt5.QtCore import qVersion
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1400 except ImportError as msg:
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1401 installed = pipInstall(
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1402 "PyQt5",
7723
8a33a532fbe9 install.py: made the user messages a bit clearer as to what is really required to be installed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7717
diff changeset
1403 "'PyQt5' could not be detected.\nError: {0}".format(msg)
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1404 )
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1405 if installed:
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1406 # try to import it again
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1407 try:
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1408 from PyQt5.QtCore import qVersion
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1409 except ImportError as msg:
6347
bcca9eba56a1 install.py: fixed input() issue again.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6322
diff changeset
1410 print('Sorry, please install PyQt5.')
bcca9eba56a1 install.py: fixed input() issue again.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6322
diff changeset
1411 print('Error: {0}'.format(msg))
6211
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1412 exit(1)
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1413 else:
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1414 print('Sorry, please install PyQt5.')
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1415 print('Error: {0}'.format(msg))
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1416 exit(1)
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1417 print("Found PyQt5")
837
10547522aa98 Added a check for QtHelp to the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 796
diff changeset
1418
10547522aa98 Added a check for QtHelp to the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 796
diff changeset
1419 try:
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1420 pyuic = "pyuic5"
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1421 from PyQt5 import uic # __IGNORE_WARNING__
4800
9b30c587513c Added a check for pyuic to the install script to prevent errors later on in the installation, if it is not installed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4673
diff changeset
1422 except ImportError as msg:
9b30c587513c Added a check for pyuic to the install script to prevent errors later on in the installation, if it is not installed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4673
diff changeset
1423 print("Sorry, {0} is not installed.".format(pyuic))
9b30c587513c Added a check for pyuic to the install script to prevent errors later on in the installation, if it is not installed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4673
diff changeset
1424 print('Error: {0}'.format(msg))
9b30c587513c Added a check for pyuic to the install script to prevent errors later on in the installation, if it is not installed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4673
diff changeset
1425 exit(1)
9b30c587513c Added a check for pyuic to the install script to prevent errors later on in the installation, if it is not installed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4673
diff changeset
1426 print("Found {0}".format(pyuic))
9b30c587513c Added a check for pyuic to the install script to prevent errors later on in the installation, if it is not installed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4673
diff changeset
1427
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1428 try:
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1429 from PyQt5 import QtWebEngineWidgets # __IGNORE_WARNING__
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1430 except ImportError as msg:
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1431 from PyQt5.QtCore import PYQT_VERSION
7203
2079ccbfa335 install, uninstall scripts: re-added the removal of the obsolete eric6_webbrowser stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7192
diff changeset
1432 if PYQT_VERSION >= 0x050c00:
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1433 # PyQt 5.12 separated QtWebEngine into a separate wheel
7185
af8e89a7a51d install.py: added check for and installation of PyQtChart in order to support MicroPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7178
diff changeset
1434 installed = pipInstall(
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1435 "PyQtWebEngine",
7723
8a33a532fbe9 install.py: made the user messages a bit clearer as to what is really required to be installed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7717
diff changeset
1436 "Optional 'PyQtWebEngine' could not be detected.\nError: {0}"
7185
af8e89a7a51d install.py: added check for and installation of PyQtChart in order to support MicroPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7178
diff changeset
1437 .format(msg)
af8e89a7a51d install.py: added check for and installation of PyQtChart in order to support MicroPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7178
diff changeset
1438 )
6636
7ae6bdeb363d install: added test for PyQtWebEngine as of PyQt v5.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6594
diff changeset
1439
4800
9b30c587513c Added a check for pyuic to the install script to prevent errors later on in the installation, if it is not installed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4673
diff changeset
1440 try:
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1441 from PyQt5 import QtChart # __IGNORE_WARNING__
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1442 except ImportError as msg:
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1443 installed = pipInstall(
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1444 "PyQtChart",
7723
8a33a532fbe9 install.py: made the user messages a bit clearer as to what is really required to be installed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7717
diff changeset
1445 "Optional 'PyQtChart' could not be detected.\nError: {0}"
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1446 .format(msg)
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1447 )
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1448
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1449 try:
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1450 from PyQt5 import Qsci # __IGNORE_WARNING__
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1451 except ImportError as msg:
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1452 installed = pipInstall(
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1453 "QScintilla",
7723
8a33a532fbe9 install.py: made the user messages a bit clearer as to what is really required to be installed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7717
diff changeset
1454 "'QScintilla' could not be detected.\nError: {0}".format(msg)
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1455 )
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1456 if installed:
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1457 # try to import it again
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1458 try:
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1459 from PyQt5 import Qsci # __IGNORE_WARNING__
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1460 message = None
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1461 except ImportError as msg:
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1462 message = str(msg)
6211
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1463 else:
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1464 message = "QScintilla could not be installed."
6211
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1465 if message:
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1466 print("Sorry, please install QScintilla2 and")
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1467 print("its PyQt5 wrapper.")
6429
296b0e5d5a76 install: fixed an issue printing an error message in case QScintilla is not detected and could not be installed via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6365
diff changeset
1468 print('Error: {0}'.format(message))
6211
4f0e08c95ca9 install script: extended the install script by code to install PyQt5 and/or QScintilla via pip.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6208
diff changeset
1469 exit(1)
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1470 print("Found QScintilla2")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1471
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1472 impModulesList = [
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1473 "PyQt5.QtGui", "PyQt5.QtNetwork", "PyQt5.QtPrintSupport",
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1474 "PyQt5.QtSql", "PyQt5.QtSvg", "PyQt5.QtWidgets",
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1475 ]
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1476 altModulesList = [
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1477 # Tuple with alternatives, flag indicating it's ok to not be
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1478 # available (e.g. for 32-Bit Windows)
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1479 (("PyQt5.QtWebEngineWidgets", ), sys.maxsize <= 2**32),
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1480 ]
7745
43888e12e481 install.py: added code section to check for and install optional packages (like pyqt5-tools).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7740
diff changeset
1481 optionalModulesList = {
43888e12e481 install.py: added code section to check for and install optional packages (like pyqt5-tools).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7740
diff changeset
1482 "pyqt5-tools": "pyqt5_tools",
43888e12e481 install.py: added code section to check for and install optional packages (like pyqt5-tools).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7740
diff changeset
1483 }
5963
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1484 # check mandatory modules
3681
3a79355b9ca5 Fixed a bugs in the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3678
diff changeset
1485 modulesOK = True
3778
0c5bc18da740 Added more changes to make eric6 usable with PyQt4 as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3758
diff changeset
1486 for impModule in impModulesList:
2312
976dcb82c3e9 Extended the dependancy check of the install script because some distributions have Qt4 (or Qt5) cut into a bunch of little pieces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2308
diff changeset
1487 name = impModule.split(".")[1]
976dcb82c3e9 Extended the dependancy check of the install script because some distributions have Qt4 (or Qt5) cut into a bunch of little pieces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2308
diff changeset
1488 try:
976dcb82c3e9 Extended the dependancy check of the install script because some distributions have Qt4 (or Qt5) cut into a bunch of little pieces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2308
diff changeset
1489 __import__(impModule)
976dcb82c3e9 Extended the dependancy check of the install script because some distributions have Qt4 (or Qt5) cut into a bunch of little pieces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2308
diff changeset
1490 print("Found", name)
976dcb82c3e9 Extended the dependancy check of the install script because some distributions have Qt4 (or Qt5) cut into a bunch of little pieces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2308
diff changeset
1491 except ImportError as msg:
976dcb82c3e9 Extended the dependancy check of the install script because some distributions have Qt4 (or Qt5) cut into a bunch of little pieces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2308
diff changeset
1492 print('Sorry, please install {0}.'.format(name))
976dcb82c3e9 Extended the dependancy check of the install script because some distributions have Qt4 (or Qt5) cut into a bunch of little pieces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2308
diff changeset
1493 print('Error: {0}'.format(msg))
976dcb82c3e9 Extended the dependancy check of the install script because some distributions have Qt4 (or Qt5) cut into a bunch of little pieces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2308
diff changeset
1494 modulesOK = False
976dcb82c3e9 Extended the dependancy check of the install script because some distributions have Qt4 (or Qt5) cut into a bunch of little pieces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2308
diff changeset
1495 if not modulesOK:
976dcb82c3e9 Extended the dependancy check of the install script because some distributions have Qt4 (or Qt5) cut into a bunch of little pieces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2308
diff changeset
1496 exit(1)
5963
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1497 # check mandatory modules with alternatives
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1498 if altModulesList:
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1499 altModulesOK = True
6476
d13d573c2da4 install: modified to allow installation on systems not having QtWebEngine or QtWebKit available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6429
diff changeset
1500 for altModules, forcedOk in altModulesList:
5963
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1501 modulesOK = False
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1502 for altModule in altModules:
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1503 name = altModule.split(".")[1]
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1504 try:
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1505 __import__(altModule)
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1506 print("Found", name)
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1507 modulesOK = True
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1508 break
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1509 except ImportError:
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1510 pass
6476
d13d573c2da4 install: modified to allow installation on systems not having QtWebEngine or QtWebKit available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6429
diff changeset
1511 if not modulesOK and not forcedOk:
5963
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1512 altModulesOK = False
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1513 print('Sorry, please install {0}.'
5992
d184ca2d3a95 Fixed a bug in the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5976
diff changeset
1514 .format(" or ".join(altModules)))
5963
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1515 if not altModulesOK:
14522ec8cd08 Made QtWebKit/QtWebKitWidgets or QtWebEngineWidgets a mandatory installation prerequisite and reverted the code, that made the HTML code info viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5810
diff changeset
1516 exit(1)
7745
43888e12e481 install.py: added code section to check for and install optional packages (like pyqt5-tools).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7740
diff changeset
1517 # check optional modules
43888e12e481 install.py: added code section to check for and install optional packages (like pyqt5-tools).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7740
diff changeset
1518 for optPackage in optionalModulesList:
43888e12e481 install.py: added code section to check for and install optional packages (like pyqt5-tools).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7740
diff changeset
1519 try:
43888e12e481 install.py: added code section to check for and install optional packages (like pyqt5-tools).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7740
diff changeset
1520 __import__(optionalModulesList[optPackage])
43888e12e481 install.py: added code section to check for and install optional packages (like pyqt5-tools).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7740
diff changeset
1521 print("Found", optPackage)
43888e12e481 install.py: added code section to check for and install optional packages (like pyqt5-tools).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7740
diff changeset
1522 except ImportError as msg:
43888e12e481 install.py: added code section to check for and install optional packages (like pyqt5-tools).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7740
diff changeset
1523 installed = pipInstall(
43888e12e481 install.py: added code section to check for and install optional packages (like pyqt5-tools).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7740
diff changeset
1524 optPackage,
43888e12e481 install.py: added code section to check for and install optional packages (like pyqt5-tools).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7740
diff changeset
1525 "Optional '{0}' could not be detected.\nError: {1}"
43888e12e481 install.py: added code section to check for and install optional packages (like pyqt5-tools).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7740
diff changeset
1526 .format(optPackage, msg)
43888e12e481 install.py: added code section to check for and install optional packages (like pyqt5-tools).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7740
diff changeset
1527 )
2312
976dcb82c3e9 Extended the dependancy check of the install script because some distributions have Qt4 (or Qt5) cut into a bunch of little pieces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2308
diff changeset
1528
1914
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
1529 # determine the platform dependent black list
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1530 if sys.platform.startswith(("win", "cygwin")):
1914
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
1531 PlatformBlackLists = PlatformsBlackLists["windows"]
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
1532 elif sys.platform.startswith("linux"):
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
1533 PlatformBlackLists = PlatformsBlackLists["linux"]
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
1534 else:
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
1535 PlatformBlackLists = PlatformsBlackLists["mac"]
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
1536
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1537 # check version of Qt
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1538 qtMajor = int(qVersion().split('.')[0])
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1539 qtMinor = int(qVersion().split('.')[1])
4173
10336d4d1488 Modified install script to show the version info before giving an error in case of unsuitable versions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4054
diff changeset
1540 print("Qt Version: {0}".format(qVersion().strip()))
7740
330a43a4db79 install script: changed minimum version for Qt/PyQt to 5.12.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7723
diff changeset
1541 if qtMajor == 5 and qtMinor < 12:
330a43a4db79 install script: changed minimum version for Qt/PyQt to 5.12.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7723
diff changeset
1542 print('Sorry, you must have Qt version 5.12.0 or better.')
390
daa7c6ae6248 Change install script to always keep it open on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 386
diff changeset
1543 exit(2)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1544
565
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1545 # check version of sip
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1546 try:
6364
6a496f0886ad Prepared the "import sip" statements for PyQt 5.11.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6360
diff changeset
1547 try:
6365
85f8745427a6 Redid the "import sip" statements for PyQt 5.11.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6364
diff changeset
1548 from PyQt5 import sip
6364
6a496f0886ad Prepared the "import sip" statements for PyQt 5.11.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6360
diff changeset
1549 except ImportError:
6365
85f8745427a6 Redid the "import sip" statements for PyQt 5.11.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6364
diff changeset
1550 import sip
3628
deb5973080a9 Added code to prevent possible segfaults when closing down.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3621
diff changeset
1551 sipVersion = sip.SIP_VERSION_STR
4178
0d882b1e0c11 A little tweak to the version outputs of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4173
diff changeset
1552 print("sip Version:", sipVersion.strip())
4889
10cec9d5aa91 Fixed an issue in the install script caused by the new PyQt naming scheme.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
1553 # always assume, that snapshots or dev versions are new enough
10cec9d5aa91 Fixed an issue in the install script caused by the new PyQt naming scheme.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
1554 if "snapshot" not in sipVersion and "dev" not in sipVersion:
3628
deb5973080a9 Added code to prevent possible segfaults when closing down.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3621
diff changeset
1555 while sipVersion.count('.') < 2:
deb5973080a9 Added code to prevent possible segfaults when closing down.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3621
diff changeset
1556 sipVersion += '.0'
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1557 (major, minor, pat) = sipVersion.split('.')
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1558 major = int(major)
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1559 minor = int(minor)
3628
deb5973080a9 Added code to prevent possible segfaults when closing down.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3621
diff changeset
1560 pat = int(pat)
7257
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1561 if (
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1562 major < 4 or
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1563 (major == 4 and minor < 14) or
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1564 (major == 4 and minor == 14 and pat < 2)
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1565 ):
3628
deb5973080a9 Added code to prevent possible segfaults when closing down.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3621
diff changeset
1566 print('Sorry, you must have sip 4.14.2 or higher or'
deb5973080a9 Added code to prevent possible segfaults when closing down.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3621
diff changeset
1567 ' a recent snapshot release.')
deb5973080a9 Added code to prevent possible segfaults when closing down.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3621
diff changeset
1568 exit(3)
565
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1569 # check for blacklisted versions
1914
fa4d57a6c3a9 Added platform specific blacklists due to recent PyQt4 issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1770
diff changeset
1570 for vers in BlackLists["sip"] + PlatformBlackLists["sip"]:
565
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1571 if vers == sipVersion:
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
1572 print(
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
1573 'Sorry, sip version {0} is not compatible with eric6.'
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
1574 .format(vers))
565
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1575 print('Please install another version.')
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1576 exit(3)
3628
deb5973080a9 Added code to prevent possible segfaults when closing down.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3621
diff changeset
1577 except (ImportError, AttributeError):
565
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1578 pass
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1579
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1580 # check version of PyQt
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1581 from PyQt5.QtCore import PYQT_VERSION_STR
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1582 pyqtVersion = PYQT_VERSION_STR
4178
0d882b1e0c11 A little tweak to the version outputs of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4173
diff changeset
1583 print("PyQt Version:", pyqtVersion.strip())
4889
10cec9d5aa91 Fixed an issue in the install script caused by the new PyQt naming scheme.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
1584 # always assume, that snapshots or dev versions are new enough
10cec9d5aa91 Fixed an issue in the install script caused by the new PyQt naming scheme.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
1585 if "snapshot" not in pyqtVersion and "dev" not in pyqtVersion:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1586 while pyqtVersion.count('.') < 2:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1587 pyqtVersion += '.0'
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1588 (major, minor, pat) = pyqtVersion.split('.')
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1589 major = int(major)
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1590 minor = int(minor)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1591 pat = int(pat)
7740
330a43a4db79 install script: changed minimum version for Qt/PyQt to 5.12.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7723
diff changeset
1592 if major == 5 and minor < 12:
330a43a4db79 install script: changed minimum version for Qt/PyQt to 5.12.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7723
diff changeset
1593 print('Sorry, you must have PyQt 5.12.0 or better or'
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1594 ' a recent snapshot release.')
565
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1595 exit(4)
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1596 # check for blacklisted versions
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1597 for vers in BlackLists["PyQt5"] + PlatformBlackLists["PyQt5"]:
565
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1598 if vers == pyqtVersion:
3778
0c5bc18da740 Added more changes to make eric6 usable with PyQt4 as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3758
diff changeset
1599 print('Sorry, PyQt version {0} is not compatible with eric6.'
565
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1600 .format(vers))
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1601 print('Please install another version.')
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1602 exit(4)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1603
565
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1604 # check version of QScintilla
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1605 from PyQt5.Qsci import QSCINTILLA_VERSION_STR
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1606 scintillaVersion = QSCINTILLA_VERSION_STR
4178
0d882b1e0c11 A little tweak to the version outputs of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4173
diff changeset
1607 print("QScintilla Version:", QSCINTILLA_VERSION_STR.strip())
4889
10cec9d5aa91 Fixed an issue in the install script caused by the new PyQt naming scheme.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
1608 # always assume, that snapshots or dev versions are new enough
10cec9d5aa91 Fixed an issue in the install script caused by the new PyQt naming scheme.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
1609 if "snapshot" not in scintillaVersion and "dev" not in scintillaVersion:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1610 while scintillaVersion.count('.') < 2:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1611 scintillaVersion += '.0'
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1612 (major, minor, pat) = scintillaVersion.split('.')
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1613 major = int(major)
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1614 minor = int(minor)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1615 pat = int(pat)
7746
12d5e1e6abd1 QScintilla: pushed required QScintilla version to 2.11.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7745
diff changeset
1616 if (
12d5e1e6abd1 QScintilla: pushed required QScintilla version to 2.11.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7745
diff changeset
1617 major < 2 or
12d5e1e6abd1 QScintilla: pushed required QScintilla version to 2.11.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7745
diff changeset
1618 (major == 2 and minor < 11) or
12d5e1e6abd1 QScintilla: pushed required QScintilla version to 2.11.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7745
diff changeset
1619 (major == 2 and minor == 11 and pat < 1)
12d5e1e6abd1 QScintilla: pushed required QScintilla version to 2.11.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7745
diff changeset
1620 ):
12d5e1e6abd1 QScintilla: pushed required QScintilla version to 2.11.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7745
diff changeset
1621 print('Sorry, you must have QScintilla 2.11.1 or higher or'
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1622 ' a recent snapshot release.')
565
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1623 exit(5)
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1624 # check for blacklisted versions
7257
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1625 for vers in (
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1626 BlackLists["QScintilla2"] +
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1627 PlatformBlackLists["QScintilla2"]
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1628 ):
565
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1629 if vers == scintillaVersion:
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
1630 print(
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
1631 'Sorry, QScintilla2 version {0} is not compatible with'
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
1632 ' eric6.'.format(vers))
565
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1633 print('Please install another version.')
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1634 exit(5)
4173
10336d4d1488 Modified install script to show the version info before giving an error in case of unsuitable versions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4054
diff changeset
1635
7329
72f3c9fdefeb Added some code to show the version info for PyQtChart and PyQtWebEngine, if this is available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7302
diff changeset
1636 # print version info for additional modules
72f3c9fdefeb Added some code to show the version info for PyQtChart and PyQtWebEngine, if this is available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7302
diff changeset
1637 try:
72f3c9fdefeb Added some code to show the version info for PyQtChart and PyQtWebEngine, if this is available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7302
diff changeset
1638 print("PyQtChart:", QtChart.PYQT_CHART_VERSION_STR)
72f3c9fdefeb Added some code to show the version info for PyQtChart and PyQtWebEngine, if this is available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7302
diff changeset
1639 except (NameError, AttributeError):
72f3c9fdefeb Added some code to show the version info for PyQtChart and PyQtWebEngine, if this is available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7302
diff changeset
1640 pass
72f3c9fdefeb Added some code to show the version info for PyQtChart and PyQtWebEngine, if this is available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7302
diff changeset
1641 try:
72f3c9fdefeb Added some code to show the version info for PyQtChart and PyQtWebEngine, if this is available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7302
diff changeset
1642 from PyQt5 import QtWebEngine
72f3c9fdefeb Added some code to show the version info for PyQtChart and PyQtWebEngine, if this is available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7302
diff changeset
1643 print("PyQtWebEngine.", QtWebEngine.PYQT_WEBENGINE_VERSION_STR)
72f3c9fdefeb Added some code to show the version info for PyQtChart and PyQtWebEngine, if this is available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7302
diff changeset
1644 except (ImportError, AttributeError):
72f3c9fdefeb Added some code to show the version info for PyQtChart and PyQtWebEngine, if this is available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7302
diff changeset
1645 pass
72f3c9fdefeb Added some code to show the version info for PyQtChart and PyQtWebEngine, if this is available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7302
diff changeset
1646
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1647 print("All dependencies ok.")
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1648 print()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1649
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1650
4435
9f6555d3c3c0 Fixed some code style issues and removed code no longer needed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4380
diff changeset
1651 def __pyName(py_dir, py_file):
9f6555d3c3c0 Fixed some code style issues and removed code no longer needed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4380
diff changeset
1652 """
9f6555d3c3c0 Fixed some code style issues and removed code no longer needed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4380
diff changeset
1653 Local function to create the Python source file name for the compiled
9f6555d3c3c0 Fixed some code style issues and removed code no longer needed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4380
diff changeset
1654 .ui file.
9f6555d3c3c0 Fixed some code style issues and removed code no longer needed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4380
diff changeset
1655
9f6555d3c3c0 Fixed some code style issues and removed code no longer needed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4380
diff changeset
1656 @param py_dir suggested name of the directory (string)
9f6555d3c3c0 Fixed some code style issues and removed code no longer needed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4380
diff changeset
1657 @param py_file suggested name for the compile source file (string)
9f6555d3c3c0 Fixed some code style issues and removed code no longer needed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4380
diff changeset
1658 @return tuple of directory name (string) and source file name (string)
9f6555d3c3c0 Fixed some code style issues and removed code no longer needed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4380
diff changeset
1659 """
9f6555d3c3c0 Fixed some code style issues and removed code no longer needed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4380
diff changeset
1660 return py_dir, "Ui_{0}".format(py_file)
9f6555d3c3c0 Fixed some code style issues and removed code no longer needed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4380
diff changeset
1661
9f6555d3c3c0 Fixed some code style issues and removed code no longer needed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4380
diff changeset
1662
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1663 def compileUiFiles():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1664 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1665 Compile the .ui files to Python sources.
4435
9f6555d3c3c0 Fixed some code style issues and removed code no longer needed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4380
diff changeset
1666 """
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1667 from PyQt5.uic import compileUiDir
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1668 compileUiDir(eric6SourceDir, True, __pyName)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1669
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1670
4238
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1671 def prepareInfoFile(fileName):
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1672 """
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1673 Function to prepare an Info.py file when installing from source.
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1674
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1675 @param fileName name of the Python file containing the info (string)
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1676 """
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1677 if not fileName:
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1678 return
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1679
4307
6a8ec996a49c Little enhancement of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4239
diff changeset
1680 try:
6a8ec996a49c Little enhancement of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4239
diff changeset
1681 os.rename(fileName, fileName + ".orig")
6a8ec996a49c Little enhancement of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4239
diff changeset
1682 except EnvironmentError:
6a8ec996a49c Little enhancement of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4239
diff changeset
1683 pass
4238
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1684 try:
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7584
diff changeset
1685 hgOut = subprocess.check_output(["hg", "identify", "-i"]) # secok
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1686 hgOut = hgOut.decode()
4519
55186d362145 Fixed a little issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4512
diff changeset
1687 except (OSError, subprocess.CalledProcessError):
4238
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1688 hgOut = ""
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1689 if hgOut:
4239
4883661fc427 Little improvement to the recent install.py change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4238
diff changeset
1690 hgOut = hgOut.strip()
4238
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1691 if hgOut.endswith("+"):
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1692 hgOut = hgOut[:-1]
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1693 f = open(fileName + ".orig", "r", encoding="utf-8")
4238
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1694 text = f.read()
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1695 f.close()
7257
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1696 text = (
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1697 text.replace("@@REVISION@@", hgOut)
4307
6a8ec996a49c Little enhancement of the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4239
diff changeset
1698 .replace("@@VERSION@@", "rev_" + hgOut)
7257
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1699 )
4238
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1700 copyToFile(fileName, text)
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1701 else:
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1702 shutil.copy(fileName + ".orig", fileName)
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1703
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1704
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1705 def getWinregEntry(name, path):
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1706 """
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1707 Function to get an entry from the Windows Registry.
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1708
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1709 @param name variable name
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1710 @type str
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1711 @param path registry path of the variable
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1712 @type str
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1713 @return value of requested registry variable
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1714 @rtype any
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1715 """
6510
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1716 try:
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1717 import winreg
6510
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1718 except ImportError:
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1719 return None
6510
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1720
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1721 try:
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1722 registryKey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, path, 0,
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1723 winreg.KEY_READ)
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1724 value, _ = winreg.QueryValueEx(registryKey, name)
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1725 winreg.CloseKey(registryKey)
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1726 return value
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1727 except WindowsError:
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1728 return None
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1729
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1730
6510
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1731 def createWindowsShortcut(linkPath, targetPath, iconPath):
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1732 """
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1733 Create Windows shortcut.
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1734
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1735 @param linkPath path of the shortcut file
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1736 @type str
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1737 @param targetPath path the shortcut shall point to
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1738 @type str
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1739 @param iconPath path of the icon file
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1740 @type str
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1741 """
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1742 from win32com.client import Dispatch
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1743 from pywintypes import com_error
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1744
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1745 try:
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1746 shell = Dispatch('WScript.Shell')
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1747 shortcut = shell.CreateShortCut(linkPath)
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1748 shortcut.Targetpath = targetPath
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1749 shortcut.WorkingDirectory = os.path.dirname(targetPath)
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1750 shortcut.IconLocation = iconPath
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1751 shortcut.save()
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1752 except com_error:
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1753 # maybe restrictions prohibited link creation
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1754 pass
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1755
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1756
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1757 def windowsDesktopNames():
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1758 """
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1759 Function to generate the link names for the Windows Desktop.
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1760
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1761 @return list of desktop link names
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1762 @rtype list of str
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1763 """
6510
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1764 return [e[0] for e in windowsDesktopEntries()]
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1765
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1766
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1767 def windowsDesktopEntries():
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1768 """
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1769 Function to generate data for the Windows Desktop links.
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1770
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1771 @return list of tuples containing the desktop link name,
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1772 the link target and the icon target
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1773 @rtype list of tuples of (str, str, str)
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1774 """
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1775 global cfg
6510
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1776
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1777 majorVersion, minorVersion = sys.version_info[:2]
6510
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1778 entriesTemplates = [
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1779 ("eric6 (Python {0}.{1}).lnk",
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1780 os.path.join(cfg["bindir"], "eric6.cmd"),
6510
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1781 os.path.join(cfg["ericPixDir"], "eric6.ico")),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1782 ("eric6 Browser (Python {0}.{1}).lnk",
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1783 os.path.join(cfg["bindir"], "eric6_browse.cmd"),
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1784 os.path.join(cfg["ericPixDir"], "ericWeb48.ico")),
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1785 ]
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1786
6510
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1787 return [
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1788 (e[0].format(majorVersion, minorVersion), e[1], e[2])
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1789 for e in entriesTemplates
d8fd663f86ef install, uninstall: added code to create and remove Desktop and Start Menu entries on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6509
diff changeset
1790 ]
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1791
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1792
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1793 def windowsProgramsEntry():
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1794 """
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1795 Function to generate the name of the Start Menu top entry.
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1796
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1797 @return name of the Start Menu top entry
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1798 @rtype str
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1799 """
7203
2079ccbfa335 install, uninstall scripts: re-added the removal of the obsolete eric6_webbrowser stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7192
diff changeset
1800 majorVersion, minorVersion = sys.version_info[:2]
2079ccbfa335 install, uninstall scripts: re-added the removal of the obsolete eric6_webbrowser stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7192
diff changeset
1801 return "eric6 (Python {0}.{1})".format(majorVersion, minorVersion)
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1802
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1803
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1804 def main(argv):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1805 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1806 The main function of the script.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1807
6594
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6593
diff changeset
1808 @param argv list of command line arguments
7ecac3b1c7aa install: second attempt to cope with tricks done by pywin32 at interpreter startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6593
diff changeset
1809 @type list of str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1810 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1811 import getopt
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1812
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1813 # Parse the command line.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1814 global progName, modDir, doCleanup, doCompile, distDir, cfg, apisDir
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1815 global sourceDir, eric6SourceDir, configName
3507
b09e10d4f343 Changed the install script to accept a '-n' option to set the name of the directory where the Mac application bundle should be created in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3468
diff changeset
1816 global macAppBundlePath, macAppBundleName, macPythonExe
7333
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
1817 global installApis, doCleanDesktopLinks, yes2All
622
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
1818
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1819 if sys.version_info < (3, 5, 0) or sys.version_info > (3, 99, 99):
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1820 print('Sorry, eric6 requires at least Python 3.5 for running.')
2690
8ca13f15e1f2 Added a check to the install script to guard against an execution with a Python2 interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2634
diff changeset
1821 exit(5)
8ca13f15e1f2 Added a check to the install script to guard against an execution with a Python2 interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2634
diff changeset
1822
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1823 progName = os.path.basename(argv[0])
1658
c61997a63efe Changed the install script to deal with installations initiated from a directory not containing the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1538
diff changeset
1824
1662
dadf3f4ee800 Fixed an issue in the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1658
diff changeset
1825 if os.path.dirname(argv[0]):
1965
96f5a76e1845 Fixed some PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1914
diff changeset
1826 os.chdir(os.path.dirname(argv[0]))
3778
0c5bc18da740 Added more changes to make eric6 usable with PyQt4 as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3758
diff changeset
1827
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1828 initGlobals()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1829
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1830 try:
6509
884182bfd25c install, uninstall: started to add capability to generate Desktop and Start Menu entries on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6500
diff changeset
1831 if sys.platform.startswith(("win", "cygwin")):
3935
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
1832 optlist, args = getopt.getopt(
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1833 argv[1:], "chxza:b:d:f:",
7333
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
1834 ["help", "no-apis", "yes"])
2306
0f020f39977b Extended the Mac support to be able to install multiple configurations in parallel (e.g. for Qt4 and Qt5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2275
diff changeset
1835 elif sys.platform == "darwin":
3935
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
1836 optlist, args = getopt.getopt(
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1837 argv[1:], "chxza:b:d:f:i:m:n:p:",
7333
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
1838 ["help", "no-apis", "yes"])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1839 else:
3935
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
1840 optlist, args = getopt.getopt(
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7185
diff changeset
1841 argv[1:], "chxza:b:d:f:i:",
7333
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
1842 ["help", "no-apis", "yes"])
3935
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
1843 except getopt.GetoptError as err:
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
1844 print(err)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1845 usage()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1846
2586
d6daabefb7a6 Reverted some of the install.py changes for Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2583
diff changeset
1847 global platBinDir
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1848
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1849 depChecks = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1850
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1851 for opt, arg in optlist:
3935
f6ba54e022fa Added install option --pyqt= to specify the PyQt variant to use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3931
diff changeset
1852 if opt in ["-h", "--help"]:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1853 usage(0)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1854 elif opt == "-a":
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1855 apisDir = arg
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1856 elif opt == "-b":
2586
d6daabefb7a6 Reverted some of the install.py changes for Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2583
diff changeset
1857 platBinDir = arg
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1858 elif opt == "-d":
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1859 modDir = arg
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1860 elif opt == "-i":
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1861 distDir = os.path.normpath(arg)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1862 elif opt == "-x":
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1863 depChecks = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1864 elif opt == "-c":
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1865 doCleanup = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1866 elif opt == "-z":
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1867 doCompile = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1868 elif opt == "-f":
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1869 try:
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1870 exec(compile(open(arg).read(), arg, 'exec'), globals())
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7584
diff changeset
1871 # secok
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1872 if len(cfg) != configLength:
2969
0e1af1313b8b Regenerated source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
1873 print("The configuration dictionary in '{0}' is incorrect."
0e1af1313b8b Regenerated source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
1874 " Aborting".format(arg))
390
daa7c6ae6248 Change install script to always keep it open on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 386
diff changeset
1875 exit(6)
4563
881340f4bd0c Fixed a few coding style issue related to 'blind except:' statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4561
diff changeset
1876 except Exception:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1877 cfg = {}
2306
0f020f39977b Extended the Mac support to be able to install multiple configurations in parallel (e.g. for Qt4 and Qt5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2275
diff changeset
1878 elif opt == "-m":
0f020f39977b Extended the Mac support to be able to install multiple configurations in parallel (e.g. for Qt4 and Qt5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2275
diff changeset
1879 macAppBundleName = arg
3507
b09e10d4f343 Changed the install script to accept a '-n' option to set the name of the directory where the Mac application bundle should be created in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3468
diff changeset
1880 elif opt == "-n":
b09e10d4f343 Changed the install script to accept a '-n' option to set the name of the directory where the Mac application bundle should be created in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3468
diff changeset
1881 macAppBundlePath = arg
2306
0f020f39977b Extended the Mac support to be able to install multiple configurations in parallel (e.g. for Qt4 and Qt5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2275
diff changeset
1882 elif opt == "-p":
0f020f39977b Extended the Mac support to be able to install multiple configurations in parallel (e.g. for Qt4 and Qt5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2275
diff changeset
1883 macPythonExe = arg
6663
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
1884 elif opt == "--no-apis":
3943
37d88bed7bb9 Extended install script to mark more files with Python variant markers and added the '--noapis' switch to suppress API files installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3942
diff changeset
1885 installApis = False
6663
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
1886 elif opt == "--clean-desktop":
fe9da2b5d148 install.py: updated help texts and added an option (--clean-desktop) to delete the desktop links before installation on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6660
diff changeset
1887 doCleanDesktopLinks = True
7333
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
1888 elif opt == "--yes":
8479201bdf7b install.py
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7329
diff changeset
1889 yes2All = True
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1890
4238
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1891 infoName = ""
622
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
1892 installFromSource = not os.path.isdir(sourceDir)
6638
df711aa509d3 install: moved the source cleanup routine to avoid deleting saved Info.py and eric6config.py files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6637
diff changeset
1893
6641
42de1c3e8777 install: moved the dependencies check earlier in the installiation order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6640
diff changeset
1894 # check dependencies
42de1c3e8777 install: moved the dependencies check earlier in the installiation order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6640
diff changeset
1895 if depChecks:
42de1c3e8777 install: moved the dependencies check earlier in the installiation order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6640
diff changeset
1896 doDependancyChecks()
42de1c3e8777 install: moved the dependencies check earlier in the installiation order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6640
diff changeset
1897
6638
df711aa509d3 install: moved the source cleanup routine to avoid deleting saved Info.py and eric6config.py files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6637
diff changeset
1898 # cleanup source if installing from source
df711aa509d3 install: moved the source cleanup routine to avoid deleting saved Info.py and eric6config.py files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6637
diff changeset
1899 if installFromSource:
df711aa509d3 install: moved the source cleanup routine to avoid deleting saved Info.py and eric6config.py files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6637
diff changeset
1900 print("Cleaning up source ...")
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1901 sourceDir = os.path.abspath("..")
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1902 eric6SourceDir = os.path.join(sourceDir, "eric6")
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1903 cleanupSource(eric6SourceDir)
6638
df711aa509d3 install: moved the source cleanup routine to avoid deleting saved Info.py and eric6config.py files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6637
diff changeset
1904 print()
df711aa509d3 install: moved the source cleanup routine to avoid deleting saved Info.py and eric6config.py files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6637
diff changeset
1905
622
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
1906 if installFromSource:
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1907 sourceDir = os.path.abspath("..")
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1908 eric6SourceDir = os.path.join(sourceDir, "eric6")
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1909 configName = os.path.join(eric6SourceDir, "eric6config.py")
4238
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1910 if os.path.exists(os.path.join(sourceDir, ".hg")):
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1911 # we are installing from source with repo
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1912 infoName = os.path.join(eric6SourceDir, "UI", "Info.py")
4238
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1913 prepareInfoFile(infoName)
622
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
1914
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1915 if len(cfg) == 0:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1916 createInstallConfig()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1917
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1918 # get rid of development config file, if it exists
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1919 try:
622
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
1920 if installFromSource:
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
1921 os.rename(configName, configName + ".orig")
626
41e79c291eff Fixed another bug in the modified install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 625
diff changeset
1922 configNameC = configName + 'c'
41e79c291eff Fixed another bug in the modified install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 625
diff changeset
1923 if os.path.exists(configNameC):
41e79c291eff Fixed another bug in the modified install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 625
diff changeset
1924 os.remove(configNameC)
622
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
1925 os.remove(configName)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1926 except EnvironmentError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1927 pass
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1928
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1929 # cleanup old installation
2634
8bd79dfb48a5 Added a few more feedback to the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2618
diff changeset
1930 print("Cleaning up old installation ...")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1931 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1932 if doCleanup:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1933 if distDir:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1934 shutil.rmtree(distDir, True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1935 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1936 cleanUp()
2420
c5a0bc75d5b6 Fixed an issue in the install script.
"Detlev Offenbach <detlev@die-offenbachs.de>"
parents: 2411
diff changeset
1937 except (IOError, OSError) as msg:
2423
bf4e888d72ab Corrected the last change again.
"Detlev Offenbach <detlev@die-offenbachs.de>"
parents: 2421
diff changeset
1938 sys.stderr.write('Error: {0}\nTry install as root.\n'.format(msg))
2421
d3bf4def72d7 Correct the last change.
"Detlev Offenbach <detlev@die-offenbachs.de>"
parents: 2420
diff changeset
1939 exit(7)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1940
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1941 # Create a config file and delete the default one
2634
8bd79dfb48a5 Added a few more feedback to the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2618
diff changeset
1942 print("\nCreating configuration file ...")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1943 createConfig()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1944
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1945 # Compile .ui files
2634
8bd79dfb48a5 Added a few more feedback to the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2618
diff changeset
1946 print("\nCompiling user interface files ...")
2480
30477cebf808 Changed the install script to remove any Ui_*.py file that might exist before recreating them.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2428
diff changeset
1947 # step 1: remove old Ui_*.py files
30477cebf808 Changed the install script to remove any Ui_*.py file that might exist before recreating them.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2428
diff changeset
1948 for root, _, files in os.walk(sourceDir):
30477cebf808 Changed the install script to remove any Ui_*.py file that might exist before recreating them.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2428
diff changeset
1949 for file in [f for f in files if fnmatch.fnmatch(f, 'Ui_*.py')]:
30477cebf808 Changed the install script to remove any Ui_*.py file that might exist before recreating them.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2428
diff changeset
1950 os.remove(os.path.join(root, file))
30477cebf808 Changed the install script to remove any Ui_*.py file that might exist before recreating them.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2428
diff changeset
1951 # step 2: compile the forms
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1952 compileUiFiles()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1953
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1954 if doCompile:
2634
8bd79dfb48a5 Added a few more feedback to the install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2618
diff changeset
1955 print("\nCompiling source files ...")
5180
9eba139a2756 Changed RegEx to be independent from Python version.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5145
diff changeset
1956 skipRe = re.compile(r"DebugClients[\\/]Python[\\/]")
2680
110ac646a3a0 Fixes for TabNanny and some code cleanup. Source doku regenerated.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2677
diff changeset
1957 sys.stdout = io.StringIO()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1958 if distDir:
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3019
diff changeset
1959 compileall.compile_dir(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1960 eric6SourceDir,
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1961 ddir=os.path.join(distDir, modDir, cfg['ericDir']),
5055
7db1b9496e52 Some enhancements to the install and uninstall scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4915
diff changeset
1962 rx=skipRe,
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1963 quiet=True)
2992
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
1964 py_compile.compile(
dbdf27746da5 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2969
diff changeset
1965 configName,
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
1966 dfile=os.path.join(distDir, modDir, "eric6config.py"))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1967 else:
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3019
diff changeset
1968 compileall.compile_dir(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6939
diff changeset
1969 eric6SourceDir,
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1970 ddir=os.path.join(modDir, cfg['ericDir']),
5055
7db1b9496e52 Some enhancements to the install and uninstall scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4915
diff changeset
1971 rx=skipRe,
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1972 quiet=True)
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 908
diff changeset
1973 py_compile.compile(configName,
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
1974 dfile=os.path.join(modDir, "eric6config.py"))
2680
110ac646a3a0 Fixes for TabNanny and some code cleanup. Source doku regenerated.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2677
diff changeset
1975 sys.stdout = sys.__stdout__
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
1976 print("\nInstalling eric6 ...")
2383
e999256385bd Extended the installation routine by the creation of a desktop file for the eric5 web browser.
"Detlev Offenbach <detlev@die-offenbachs.de>"
parents: 2312
diff changeset
1977 res = installEric()
622
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
1978
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
1979 # do some cleanup
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
1980 try:
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
1981 if installFromSource:
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
1982 os.remove(configName)
626
41e79c291eff Fixed another bug in the modified install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 625
diff changeset
1983 configNameC = configName + 'c'
41e79c291eff Fixed another bug in the modified install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 625
diff changeset
1984 if os.path.exists(configNameC):
41e79c291eff Fixed another bug in the modified install script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 625
diff changeset
1985 os.remove(configNameC)
622
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
1986 os.rename(configName + ".orig", configName)
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
1987 except EnvironmentError:
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
1988 pass
4238
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1989 try:
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1990 if installFromSource and infoName:
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1991 os.remove(infoName)
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1992 infoNameC = infoName + 'c'
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1993 if os.path.exists(infoNameC):
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1994 os.remove(infoNameC)
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1995 os.rename(infoName + ".orig", infoName)
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1996 except EnvironmentError:
53bd830433dc Changed the install script to include the Mercurial revision number when install from the sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4178
diff changeset
1997 pass
622
54c2a58acef4 Modified install script such, that it allows an installation from source as well. The situation will be determined automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 620
diff changeset
1998
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1999 print("\nInstallation complete.")
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
2000 print()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2001
2383
e999256385bd Extended the installation routine by the creation of a desktop file for the eric5 web browser.
"Detlev Offenbach <detlev@die-offenbachs.de>"
parents: 2312
diff changeset
2002 exit(res)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2003
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2004
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2005 if __name__ == "__main__":
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2006 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2007 main(sys.argv)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2008 except SystemExit:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2009 raise
4563
881340f4bd0c Fixed a few coding style issue related to 'blind except:' statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4561
diff changeset
2010 except Exception:
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
2011 print("""An internal error occured. Please report all the output"""
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
2012 """ of the program,\nincluding the following traceback, to"""
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3657
diff changeset
2013 """ eric-bugs@eric-ide.python-projects.org.\n""")
565
21191e634b47 Added checks for blacklisted versions of sip, PyQt4 and QScintilla2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
2014 raise
4566
a2e8f3c420ec Dealt with the M801 code style checker messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4563
diff changeset
2015
a2e8f3c420ec Dealt with the M801 code style checker messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4563
diff changeset
2016 #
a2e8f3c420ec Dealt with the M801 code style checker messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4563
diff changeset
2017 # eflag: noqa = M801

eric ide

mercurial