Fri, 02 Aug 2024 14:35:21 +0200
Changed the logic to setup the initial size of the editor outline widget. Somehow the width of the splitter did not get set correctly in certain situations (see issue 567).
10781
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | #!/usr/bin/env python3 |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | # -*- coding: utf-8 -*- |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # Copyright (c) 2024 Detlev Offenbach <detlev@die-offenbachs.de> |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | # |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | # This is the install script for the eric-ide server. It may be used |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | # to just install the server for remote editing and debugging. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | # |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | Installation script for the eric-ide server. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | import argparse |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | import compileall |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | import contextlib |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | import fnmatch |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | import importlib |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | import io |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | import json |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | import os |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | import re |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | import shutil |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | import subprocess |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | import sys |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | import sysconfig |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | # Define the globals. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | currDir = os.getcwd() |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | scriptsDir = None |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | modDir = None |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | pyModDir = None |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | distDir = None |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | installPackage = "eric7" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | doCleanup = True |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | doCompile = True |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | doDepChecks = True |
10801
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
38 | proxy = None |
10781
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | sourceDir = "eric" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | eric7SourceDir = "" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | def exit(rcode=0): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | Exit the install script. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | @param rcode result code to report back |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | @type int |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | global currDir |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | if sys.platform.startswith("win"): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | with contextlib.suppress(EOFError): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | input("Press enter to continue...") # secok |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | os.chdir(currDir) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | sys.exit(rcode) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | def initGlobals(): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | Module function to set the values of globals that need more than a |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | simple assignment. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | global modDir, pyModDir, scriptsDir |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | # determine the platform scheme |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | if sys.platform.startswith(("win", "cygwin")): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | scheme = "nt_user" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | elif sys.platform == "darwin": |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | scheme = "osx_framework_user" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | else: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | scheme = "posix_user" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | # determine modules directory |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | modDir = sysconfig.get_path("platlib") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | if not os.access(modDir, os.W_OK): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | # can't write to the standard path, use the 'user' path instead |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | modDir = sysconfig.get_path("platlib", scheme) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | pyModDir = modDir |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | # determine the scripts directory |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | scriptsDir = sysconfig.get_path("scripts") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | if not os.access(scriptsDir, os.W_OK): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | # can't write to the standard path, use the 'user' path instead |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | scriptsDir = sysconfig.get_path("scripts", scheme) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | def copyToFile(name, text): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | Copy a string to a file. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | @param name name of the file |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | @type str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | @param text contents to copy to the file |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | @type str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | with open(name, "w") as f: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | f.write(text) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | def copyTree(src, dst, filters, excludeDirs=None, excludePatterns=None): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | Copy files of a directory tree. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | @param src name of the source directory |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | @type str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | @param dst name of the destination directory |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | @type str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | @param filters list of filter pattern determining the files to be copied |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | @type list of str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | @param excludeDirs list of (sub)directories to exclude from copying |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | @type list of str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | @param excludePatterns list of filter pattern determining the files to |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | be skipped |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | @type str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | if excludeDirs is None: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | excludeDirs = [] |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | if excludePatterns is None: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | excludePatterns = [] |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | try: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | names = os.listdir(src) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | except OSError: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | # ignore missing directories |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | return |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | for name in names: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | skipIt = False |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | for excludePattern in excludePatterns: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | if fnmatch.fnmatch(name, excludePattern): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | skipIt = True |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | break |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | if not skipIt: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | srcname = os.path.join(src, name) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | dstname = os.path.join(dst, name) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | for fileFilter in filters: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | if fnmatch.fnmatch(srcname, fileFilter): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | if not os.path.isdir(dst): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | os.makedirs(dst) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | shutil.copy2(srcname, dstname) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | os.chmod(dstname, 0o644) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | break |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | else: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | if os.path.isdir(srcname) and srcname not in excludeDirs: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | copyTree(srcname, dstname, filters, excludePatterns=excludePatterns) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | def cleanupSource(dirName): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | Cleanup the sources directory to get rid of leftover files |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | and directories. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | @param dirName name of the directory to prune |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | @type str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | # step 1: delete the __pycache__ directory and all *.pyc files |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | if os.path.exists(os.path.join(dirName, "__pycache__")): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | shutil.rmtree(os.path.join(dirName, "__pycache__")) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | for name in [f for f in os.listdir(dirName) if fnmatch.fnmatch(f, "*.pyc")]: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | os.remove(os.path.join(dirName, name)) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | # step 2: descent into subdirectories and delete them if empty |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | for name in os.listdir(dirName): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | name = os.path.join(dirName, name) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | if os.path.isdir(name): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | cleanupSource(name) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | if len(os.listdir(name)) == 0: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | os.rmdir(name) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | def cleanUp(): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | Uninstall the old eric files. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | global installPackage, pyModDir, scriptsDir |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | try: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | # Cleanup the package directories |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | dirname = os.path.join(pyModDir, installPackage) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | if os.path.exists(dirname): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | shutil.rmtree(dirname, ignore_errors=True) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | except OSError as msg: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | sys.stderr.write("Error: {0}\nTry install with admin rights.\n".format(msg)) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | exit(7) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | # Remove the wrapper scripts |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | rem_wnames = ["eric7_server"] |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | try: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | for rem_wname in rem_wnames: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | for rwname in wrapperNames(scriptsDir, rem_wname): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | if os.path.exists(rwname): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | os.remove(rwname) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | except OSError as msg: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | sys.stderr.write("Error: {0}\nTry install with admin rights.\n".format(msg)) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | exit(7) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200 | def wrapperNames(dname, wfile): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | Create the platform specific names for the wrapper script. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | @param dname name of the directory to place the wrapper into |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | @type str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | @param wfile basename (without extension) of the wrapper script |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | @type str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | @return list containing the names of the wrapper scripts |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | @rtype list of str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | wnames = ( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | [dname + "\\" + wfile + ".cmd", dname + "\\" + wfile + ".bat"] |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | if sys.platform.startswith(("win", "cygwin")) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | else [dname + "/" + wfile] |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | return wnames |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | def createPyWrapper(pydir, wfile, saveDir): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | Create an executable wrapper for a Python script. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | @param pydir name of the directory where the Python script will |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | eventually be installed |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | @type str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | @param wfile basename of the wrapper |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | @type str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | @param saveDir directory to save the file into |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | @type str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | @return the platform specific name of the wrapper |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | @rtype str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | # all kinds of Windows systems |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | if sys.platform.startswith(("win", "cygwin")): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | wname = wfile + ".cmd" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | wrapper = """@"{0}" "{1}\\{2}.py" %1 %2 %3 %4 %5 %6 %7 %8 %9\n""".format( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | sys.executable, pydir, wfile |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | # Mac OS X |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | elif sys.platform == "darwin": |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | major = sys.version_info.major |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | pyexec = "{0}/bin/python{1}".format(sys.exec_prefix, major) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | wname = wfile |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | wrapper = ( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | """#!/bin/sh\n""" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | """\n""" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | """exec "{0}" "{1}/{2}.py" "$@"\n""".format(pyexec, pydir, wfile) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | # *nix systems |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | else: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | wname = wfile |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | wrapper = ( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | """#!/bin/sh\n""" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | """\n""" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | """exec "{0}" "{1}/{2}.py" "$@"\n""".format(sys.executable, pydir, wfile) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
260 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
261 | wname = os.path.join(saveDir, wname) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262 | copyToFile(wname, wrapper) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263 | os.chmod(wname, 0o755) # secok |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265 | return wname |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | def shutilCopy(src, dst, perm=0o644): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
269 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
270 | Wrapper function around shutil.copy() to ensure the permissions. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | @param src source file name |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | @type str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274 | @param dst destination file name or directory name |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | @type str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | @param perm permissions to be set |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | @type int |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | shutil.copy(src, dst) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | if os.path.isdir(dst): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281 | dst = os.path.join(dst, os.path.basename(src)) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | os.chmod(dst, perm) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | def pipInstall(packageName, message, force=True): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | Install the given package via pip. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | @param packageName name of the package to be installed |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | @type str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | @param message message to be shown to the user |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
292 | @type str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293 | @param force flag indicating to perform the installation |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294 | without asking the user |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
295 | @type bool |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
296 | @return flag indicating a successful installation |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
297 | @rtype bool |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | """ |
10801
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
299 | global proxy |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
300 | |
10781
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
301 | ok = False |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302 | if force: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
303 | answer = "y" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
304 | else: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
305 | print( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
306 | "{0}\nShall '{1}' be installed using pip? (Y/n)".format( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
307 | message, packageName |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
308 | ), |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
309 | end=" ", |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
310 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
311 | answer = input() # secok |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
312 | if answer in ("", "Y", "y"): |
10801
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
313 | args = [ |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
314 | sys.executable, |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
315 | "-m", |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
316 | "pip", |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
317 | "install", |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
318 | "--prefer-binary", |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
319 | "--upgrade", |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
320 | ] |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
321 | if proxy: |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
322 | args.append(f"--proxy={proxy}") |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
323 | args.append(packageName) |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
324 | exitCode = subprocess.run(args).returncode # secok |
10781
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
325 | ok = exitCode == 0 |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
326 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
327 | return ok |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
328 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
329 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
330 | def isPipOutdated(): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
331 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
332 | Check, if pip is outdated. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
333 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
334 | @return flag indicating an outdated pip |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
335 | @rtype bool |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
336 | """ |
10801
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
337 | global proxy |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
338 | |
10781
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
339 | try: |
10801
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
340 | args = [ |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
341 | sys.executable, |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
342 | "-m", |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
343 | "pip", |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
344 | "list", |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
345 | "--outdated", |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
346 | "--format=json", |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
347 | ] |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
348 | if proxy: |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
349 | args.append(f"--proxy={proxy}") |
10781
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
350 | pipOut = ( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | subprocess.run( # secok |
10801
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
352 | args, |
10781
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | check=True, |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354 | capture_output=True, |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
355 | text=True, |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | .stdout.strip() |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358 | .splitlines()[0] |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | # only the first line contains the JSON data |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361 | except (OSError, subprocess.CalledProcessError): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362 | pipOut = "[]" # default empty list |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363 | try: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364 | jsonList = json.loads(pipOut) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | except Exception: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366 | jsonList = [] |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367 | for package in jsonList: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368 | if isinstance(package, dict) and package["name"] == "pip": |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
369 | print( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
370 | "'pip' is outdated (installed {0}, available {1})".format( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | package["version"], package["latest_version"] |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374 | return True |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
376 | return False |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
377 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
378 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | def updatePip(): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
381 | Update the installed pip package. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
382 | """ |
10801
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
383 | global proxy |
10781
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384 | |
10801
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
385 | print("Shall 'pip' be updated (recommended)? (Y/n)", end=" ") |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
386 | answer = input() # secok |
10781
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
387 | if answer in ("", "Y", "y"): |
10801
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
388 | args = [ |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
389 | sys.executable, |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
390 | "-m", |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
391 | "pip", |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
392 | "install", |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
393 | "--upgrade", |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
394 | ] |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
395 | if proxy: |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
396 | args.append(f"--proxy={proxy}") |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
397 | args.append("pip") |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
398 | subprocess.run(args) # secok |
10781
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
399 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
400 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401 | def doDependancyChecks(): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
402 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
403 | Perform some dependency checks. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
404 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
405 | try: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
406 | isSudo = os.getuid() == 0 and sys.platform != "darwin" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
407 | # disregard sudo installs on macOS |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
408 | except AttributeError: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
409 | isSudo = False |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
410 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
411 | print("Checking dependencies") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
412 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
413 | # update pip first even if we don't need to install anything |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
414 | if not isSudo and isPipOutdated(): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
415 | updatePip() |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
416 | print("\n") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
417 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
418 | # perform dependency checks |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
419 | if sys.version_info < (3, 8, 0) or sys.version_info >= (3, 13, 0): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
420 | print("Sorry, you must have Python 3.8.0 or higher, but less 3.13.0.") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
421 | print("Yours is {0}.".format(".".join(str(v) for v in sys.version_info[:3]))) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
422 | exit(5) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
423 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
424 | requiredModulesList = { |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
425 | # key is pip project name |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
426 | # value is tuple of package name, pip install constraint |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
427 | "coverage": ("coverage", ">=6.5.0"), |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
428 | "EditorConfig": ("editorconfig", ""), |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
429 | } |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
430 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
431 | # check required modules |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
432 | print("Required Packages") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
433 | print("-----------------") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
434 | requiredMissing = False |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
435 | for requiredPackage in sorted(requiredModulesList): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
436 | try: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
437 | importlib.import_module(requiredModulesList[requiredPackage][0]) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
438 | print("Found", requiredPackage) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
439 | except ImportError as err: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
440 | if isSudo: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
441 | print("Required '{0}' could not be detected.".format(requiredPackage)) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
442 | requiredMissing = True |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
443 | else: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
444 | pipInstall( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
445 | requiredPackage + requiredModulesList[requiredPackage][1], |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
446 | "Required '{0}' could not be detected.{1}".format( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
447 | requiredPackage, "\nError: {0}".format(err) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
448 | ), |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
449 | force=True, |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
450 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
451 | if requiredMissing: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
452 | print("Some required packages are missing and could not be installed.") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
453 | print("Install them manually.") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
454 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
455 | print() |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
456 | print("All dependencies ok.") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
457 | print() |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
458 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
459 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
460 | def installEricServer(): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
461 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
462 | Actually perform the installation steps. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
463 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
464 | @return result code |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
465 | @rtype int |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
466 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
467 | global distDir, sourceDir, modDir, scriptsDir |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
468 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
469 | # set install prefix, if not None |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
470 | targetDir = ( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
471 | os.path.normpath(os.path.join(distDir, installPackage)) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
472 | if distDir |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
473 | else os.path.join(modDir, installPackage) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
474 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
475 | if not os.path.isdir(targetDir): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
476 | os.makedirs(targetDir) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
477 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
478 | # Create the platform specific wrapper. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
479 | tmpScriptsDir = "install_scripts" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
480 | if not os.path.isdir(tmpScriptsDir): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
481 | os.mkdir(tmpScriptsDir) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
482 | wrapper = createPyWrapper(targetDir, "eric7_server", tmpScriptsDir) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
483 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
484 | try: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
485 | # Install the files |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
486 | # copy the various parts of eric-ide server |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
487 | for package in ("DebugClients", "RemoteServer"): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
488 | copyTree( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
489 | os.path.join(eric7SourceDir, package), |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
490 | os.path.join(targetDir, package), |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
491 | ["*.py", "*.pyc", "*.pyo", "*.pyw"], |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
492 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
493 | # copy the needed parts of SystemUtilities |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
494 | os.makedirs(os.path.join(targetDir, "SystemUtilities")) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
495 | for module in ("__init__.py", "FileSystemUtilities.py", "OSUtilities.py"): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
496 | shutilCopy( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
497 | os.path.join(eric7SourceDir, "SystemUtilities", module), |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
498 | os.path.join(targetDir, "SystemUtilities"), |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
499 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
500 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
501 | # copy the top level files |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
502 | for module in ("__init__.py", "__version__.py", "eric7_server.py"): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
503 | shutilCopy(os.path.join(eric7SourceDir, module), targetDir) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
504 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
505 | # copy the license and README files |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
506 | for infoFile in ("LICENSE.txt", "README-server.md"): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
507 | shutilCopy(os.path.join(sourceDir, "docs", infoFile), targetDir) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
508 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
509 | # copy the wrapper |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
510 | shutilCopy(wrapper, scriptsDir, perm=0o755) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
511 | shutil.rmtree(tmpScriptsDir) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
512 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
513 | except OSError as msg: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
514 | sys.stderr.write("\nError: {0}\nTry install with admin rights.\n".format(msg)) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
515 | return 7 |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
516 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
517 | return 0 |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
518 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
519 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
520 | def createArgumentParser(): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
521 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
522 | Function to create an argument parser. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
523 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
524 | @return created argument parser object |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
525 | @rtype argparse.ArgumentParser |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
526 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
527 | parser = argparse.ArgumentParser( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
528 | description="Install eric-ide server from the source code tree." |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
529 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
530 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
531 | parser.add_argument( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
532 | "-d", |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
533 | metavar="dir", |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
534 | default=modDir, |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
535 | help="directory where eric-ide server files will be installed" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
536 | " (default: {0})".format(modDir), |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
537 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
538 | parser.add_argument( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
539 | "-b", |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
540 | metavar="dir", |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
541 | default=scriptsDir, |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
542 | help="directory where the binaries will be installed (default: {0})".format( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
543 | scriptsDir |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
544 | ), |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
545 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
546 | if not sys.platform.startswith(("win", "cygwin")): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
547 | parser.add_argument( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
548 | "-i", |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
549 | metavar="dir", |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
550 | default=distDir, |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
551 | help="temporary install prefix (default: {0})".format(distDir), |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
552 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
553 | parser.add_argument( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
554 | "-c", |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
555 | action="store_false", |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
556 | help="don't cleanup old installation first", |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
557 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
558 | parser.add_argument( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
559 | "-z", |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
560 | action="store_false", |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
561 | help="don't compile the installed Python files", |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
562 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
563 | parser.add_argument( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
564 | "-x", |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
565 | action="store_false", |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
566 | help="don't perform dependency checks (use on your own risk)", |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
567 | ) |
10801
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
568 | parser.add_argument( |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
569 | "--proxy", |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
570 | default=None, |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
571 | metavar="url", |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
572 | help="HTTP proxy url will be used with pip (default: no proxy used)", |
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
573 | ) |
10781
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
574 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
575 | return parser |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
576 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
577 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
578 | def main(argv): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
579 | """ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
580 | The main function of the script. |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
581 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
582 | @param argv the list of command line arguments |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
583 | @type list of str |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
584 | """ |
10801
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
585 | global modDir, doCleanup, doCompile, doDepChecks, distDir, scriptsDir, proxy |
10781
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
586 | global sourceDir, eric7SourceDir |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
587 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
588 | if sys.version_info < (3, 8, 0) or sys.version_info >= (4, 0, 0): |
10801
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
589 | print("Sorry, the eric-ide serverr requires Python 3.8 or better for running.") |
10781
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
590 | exit(5) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
591 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
592 | if os.path.dirname(argv[0]): |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
593 | os.chdir(os.path.dirname(argv[0])) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
594 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
595 | initGlobals() |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
596 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
597 | parser = createArgumentParser() |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
598 | args = parser.parse_args() |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
599 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
600 | modDir = args.d |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
601 | scriptsDir = args.b |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
602 | doDepChecks = args.x |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
603 | doCleanup = args.c |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
604 | doCompile = args.z |
10801
5859861e7a1f
Extended the install scripts to allow the configuration of a proxy URL for the pip command (see issue (see issue 563).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10781
diff
changeset
|
605 | proxy = args.proxy |
10781
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
606 | if not sys.platform.startswith(("win", "cygwin")) and args.i: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
607 | distDir = os.path.normpath(args.i) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
608 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
609 | # check dependencies |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
610 | if doDepChecks: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
611 | doDependancyChecks() |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
612 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
613 | installFromSource = not os.path.isdir(sourceDir) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
614 | if installFromSource: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
615 | sourceDir = os.path.abspath("..") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
616 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
617 | eric7SourceDir = ( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
618 | os.path.join(sourceDir, "eric7") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
619 | if os.path.exists(os.path.join(sourceDir, "eric7")) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
620 | else os.path.join(sourceDir, "src", "eric7") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
621 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
622 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
623 | # cleanup source if installing from source |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
624 | if installFromSource: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
625 | print("Cleaning up source ...", end="", flush=True) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
626 | cleanupSource(os.path.join(eric7SourceDir, "DebugClients")) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
627 | print(" Done") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
628 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
629 | # cleanup old installation |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
630 | try: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
631 | if doCleanup: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
632 | print("Cleaning up old installation ...", end="", flush=True) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
633 | if distDir: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
634 | shutil.rmtree(distDir, ignore_errors=True) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
635 | else: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
636 | cleanUp() |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
637 | print(" Done") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
638 | except OSError as msg: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
639 | sys.stderr.write("Error: {0}\nTry install as root.\n".format(msg)) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
640 | exit(7) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
641 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
642 | if doCompile: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
643 | print("Compiling source files ...", end="", flush=True) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
644 | skipRe = re.compile(r"DebugClients[\\/]Python[\\/]") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
645 | sys.stdout = io.StringIO() |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
646 | if distDir: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
647 | compileall.compile_dir( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
648 | os.path.join(eric7SourceDir, "DebugClients"), |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
649 | ddir=os.path.join(distDir, modDir, installPackage), |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
650 | rx=skipRe, |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
651 | quiet=True, |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
652 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
653 | else: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
654 | compileall.compile_dir( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
655 | os.path.join(eric7SourceDir, "DebugClients"), |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
656 | ddir=os.path.join(modDir, installPackage), |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
657 | rx=skipRe, |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
658 | quiet=True, |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
659 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
660 | sys.stdout = sys.__stdout__ |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
661 | print(" Done") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
662 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
663 | print("Installing eric-ide server ...", end="", flush=True) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
664 | res = installEricServer() |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
665 | print(" Done") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
666 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
667 | print("Installation complete.") |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
668 | print() |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
669 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
670 | exit(res) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
671 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
672 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
673 | if __name__ == "__main__": |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
674 | try: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
675 | main(sys.argv) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
676 | except SystemExit: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
677 | raise |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
678 | except Exception: |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
679 | print( |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
680 | """An internal error occured. Please report all the output""" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
681 | """ of the program,\nincluding the following traceback, to""" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
682 | """ eric-bugs@eric-ide.python-projects.org.\n""" |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
683 | ) |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
684 | raise |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
685 | |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
686 | # |
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
687 | # eflag: noqa = M801 |