Fri, 25 Apr 2025 16:23:02 +0200
MicroPython
- Extended the handling of Access Point security/authmode settings to be more dynamic.
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | #!/usr/bin/env python3 |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | # -*- coding: utf-8 -*- |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | |
11090
f5f5f5803935
Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11022
diff
changeset
|
4 | # Copyright (c) 2016 - 2025 Detlev Offenbach <detlev@die-offenbachs.de> |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | # |
7960
e8fc383322f7
Harmonized some user visible strings and changed the term 'eric6' to the more generic 'eric'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
6 | # This is the install script for the eric debug client. It may be used |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | # to just install the debug clients for remote debugging. |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | # |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | """ |
7960
e8fc383322f7
Harmonized some user visible strings and changed the term 'eric6' to the more generic 'eric'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
11 | Installation script for the eric debug clients. |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | """ |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
10300
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
14 | import argparse |
8501
7b5f10581c35
Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8314
diff
changeset
|
15 | import compileall |
7b5f10581c35
Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8314
diff
changeset
|
16 | import contextlib |
7b5f10581c35
Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8314
diff
changeset
|
17 | import fnmatch |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
18 | import importlib |
7639
422fd05e9c91
Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7637
diff
changeset
|
19 | import io |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
20 | import json |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | import os |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | import re |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | import shutil |
10170
6cf1ee737d8f
Corrected some more code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10119
diff
changeset
|
24 | import subprocess # secok |
8501
7b5f10581c35
Removed the support for the deprecated distutils package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8314
diff
changeset
|
25 | import sys |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9328
diff
changeset
|
26 | import sysconfig |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | # Define the globals. |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | currDir = os.getcwd() |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | modDir = None |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | pyModDir = None |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | distDir = None |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
33 | installPackage = "eric7" |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | doCleanup = True |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | doCompile = 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
|
36 | proxy = None |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | sourceDir = "eric" |
9209
b99e7fd55fd3
Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8918
diff
changeset
|
38 | eric7SourceDir = "" |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | def exit(rcode=0): |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | """ |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | Exit the install script. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
44 | |
10420
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
45 | @param rcode result code to report back |
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
46 | @type int |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | """ |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | global currDir |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
49 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | if sys.platform.startswith("win"): |
9328
49a0a9cb2505
Fixed some code style issues detected by the new checks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
51 | with contextlib.suppress(EOFError): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
52 | input("Press enter to continue...") # secok |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
53 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | os.chdir(currDir) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
55 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | sys.exit(rcode) |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | def initGlobals(): |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | """ |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | Module function to set the values of globals that need more than a |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | simple assignment. |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | """ |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | global modDir, pyModDir |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
65 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
66 | modDir = sysconfig.get_path("platlib") |
10091
ac6edcfe7831
Corrected the install and uninstall scripts to cope use the user site-packages if a global install without admin rights is done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9694
diff
changeset
|
67 | if not os.access(modDir, os.W_OK): |
ac6edcfe7831
Corrected the install and uninstall scripts to cope use the user site-packages if a global install without admin rights is done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9694
diff
changeset
|
68 | # can't write to the standard path, use the 'user' path instead |
ac6edcfe7831
Corrected the install and uninstall scripts to cope use the user site-packages if a global install without admin rights is done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9694
diff
changeset
|
69 | if sys.platform.startswith(("win", "cygwin")): |
ac6edcfe7831
Corrected the install and uninstall scripts to cope use the user site-packages if a global install without admin rights is done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9694
diff
changeset
|
70 | scheme = "nt_user" |
ac6edcfe7831
Corrected the install and uninstall scripts to cope use the user site-packages if a global install without admin rights is done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9694
diff
changeset
|
71 | elif sys.platform == "darwin": |
ac6edcfe7831
Corrected the install and uninstall scripts to cope use the user site-packages if a global install without admin rights is done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9694
diff
changeset
|
72 | scheme = "osx_framework_user" |
ac6edcfe7831
Corrected the install and uninstall scripts to cope use the user site-packages if a global install without admin rights is done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9694
diff
changeset
|
73 | else: |
ac6edcfe7831
Corrected the install and uninstall scripts to cope use the user site-packages if a global install without admin rights is done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9694
diff
changeset
|
74 | scheme = "posix_user" |
ac6edcfe7831
Corrected the install and uninstall scripts to cope use the user site-packages if a global install without admin rights is done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9694
diff
changeset
|
75 | modDir = sysconfig.get_path("platlib", scheme) |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | pyModDir = modDir |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | |
5651
982465f8389c
Fixed a few code style issues related to the usage of mutable types for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5597
diff
changeset
|
79 | def copyTree(src, dst, filters, excludeDirs=None, excludePatterns=None): |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | """ |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | Copy files of a directory tree. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
82 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | @param src name of the source directory |
10420
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
84 | @type str |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | @param dst name of the destination directory |
10420
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
86 | @type str |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | @param filters list of filter pattern determining the files to be copied |
10420
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
88 | @type list of str |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | @param excludeDirs list of (sub)directories to exclude from copying |
10420
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
90 | @type list of str |
7900
72b88fb20261
Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7894
diff
changeset
|
91 | @param excludePatterns list of filter pattern determining the files to |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | be skipped |
10420
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
93 | @type str |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | """ |
5651
982465f8389c
Fixed a few code style issues related to the usage of mutable types for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5597
diff
changeset
|
95 | if excludeDirs is None: |
982465f8389c
Fixed a few code style issues related to the usage of mutable types for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5597
diff
changeset
|
96 | excludeDirs = [] |
982465f8389c
Fixed a few code style issues related to the usage of mutable types for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5597
diff
changeset
|
97 | if excludePatterns is None: |
982465f8389c
Fixed a few code style issues related to the usage of mutable types for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5597
diff
changeset
|
98 | excludePatterns = [] |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | try: |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | names = os.listdir(src) |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | except OSError: |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | # ignore missing directories |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
104 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | for name in names: |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | skipIt = False |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | for excludePattern in excludePatterns: |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | if fnmatch.fnmatch(name, excludePattern): |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | skipIt = True |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | break |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | if not skipIt: |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | srcname = os.path.join(src, name) |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | dstname = os.path.join(dst, name) |
5597
3d88d53f8c2b
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
114 | for fileFilter in filters: |
3d88d53f8c2b
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
115 | if fnmatch.fnmatch(srcname, fileFilter): |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | if not os.path.isdir(dst): |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | os.makedirs(dst) |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | shutil.copy2(srcname, dstname) |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | os.chmod(dstname, 0o644) |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | break |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | else: |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | if os.path.isdir(srcname) and srcname not in excludeDirs: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
123 | copyTree(srcname, dstname, filters, excludePatterns=excludePatterns) |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | def cleanupSource(dirName): |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | """ |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | Cleanup the sources directory to get rid of leftover files |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | and directories. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
130 | |
10420
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
131 | @param dirName name of the directory to prune |
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
132 | @type str |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | """ |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | # step 1: delete the __pycache__ directory and all *.pyc files |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | if os.path.exists(os.path.join(dirName, "__pycache__")): |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | shutil.rmtree(os.path.join(dirName, "__pycache__")) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
137 | for name in [f for f in os.listdir(dirName) if fnmatch.fnmatch(f, "*.pyc")]: |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | os.remove(os.path.join(dirName, name)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
139 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | # step 2: descent into subdirectories and delete them if empty |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | for name in os.listdir(dirName): |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | name = os.path.join(dirName, name) |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | if os.path.isdir(name): |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | cleanupSource(name) |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | if len(os.listdir(name)) == 0: |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | os.rmdir(name) |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | def cleanUp(): |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | """ |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | Uninstall the old eric debug client files. |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | """ |
9209
b99e7fd55fd3
Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8918
diff
changeset
|
153 | global pyModDir, installPackage |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
154 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | try: |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | # Cleanup the install directories |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | dirname = os.path.join(pyModDir, installPackage) |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | if os.path.exists(dirname): |
10403
ea3320d5e8e9
Changed code using "shutil.rmtree()" more readable by adding "ignore_errors=" where this parameter is non-default.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10300
diff
changeset
|
159 | shutil.rmtree(dirname, ignore_errors=True) |
7836
2f0d208b8137
Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7639
diff
changeset
|
160 | except OSError as msg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
161 | sys.stderr.write("Error: {0}\nTry install with admin rights.\n".format(msg)) |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | exit(7) |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | def shutilCopy(src, dst, perm=0o644): |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | """ |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | Wrapper function around shutil.copy() to ensure the permissions. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
168 | |
10420
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
169 | @param src source file name |
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
170 | @type str |
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
171 | @param dst destination file name or directory name |
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
172 | @type str |
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
173 | @param perm permissions to be set |
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
174 | @type int |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | """ |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | shutil.copy(src, dst) |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | if os.path.isdir(dst): |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | dst = os.path.join(dst, os.path.basename(src)) |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | os.chmod(dst, perm) |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | def installEricDebugClients(): |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | """ |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | Actually perform the installation steps. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
185 | |
10420
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
186 | @return result code |
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
187 | @rtype int |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | """ |
10781
0e3d6e22efaf
Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10439
diff
changeset
|
189 | global distDir, sourceDir, modDir |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
190 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | # set install prefix, if not None |
8260
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
192 | targetDir = ( |
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
193 | os.path.normpath(os.path.join(distDir, installPackage)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
194 | if distDir |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
195 | else os.path.join(modDir, installPackage) |
8260
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
196 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
197 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | try: |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | # Install the files |
7960
e8fc383322f7
Harmonized some user visible strings and changed the term 'eric6' to the more generic 'eric'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
200 | # copy the various parts of eric debug clients |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | copyTree( |
9209
b99e7fd55fd3
Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8918
diff
changeset
|
202 | os.path.join(eric7SourceDir, "DebugClients"), |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
203 | os.path.join(targetDir, "DebugClients"), |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
204 | ["*.py", "*.pyc", "*.pyo", "*.pyw"], |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
205 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
206 | |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
207 | # copy the top level package file |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
208 | shutilCopy(os.path.join(eric7SourceDir, "__init__.py"), targetDir) |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
209 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | # copy the license file |
9674
43dd357b3bff
Modified the pyproject.toml file to include a reference to the license file and changed its extension to be .txt.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9653
diff
changeset
|
211 | shutilCopy(os.path.join(sourceDir, "docs", "LICENSE.txt"), targetDir) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
212 | |
7836
2f0d208b8137
Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7639
diff
changeset
|
213 | except OSError as msg: |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
214 | sys.stderr.write("\nError: {0}\nTry install with admin rights.\n".format(msg)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
215 | return 7 |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
216 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | return 0 |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
220 | def pipInstall(packageName, message, force=True): |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
221 | """ |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
222 | Install the given package via pip. |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
223 | |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
224 | @param packageName name of the package to be installed |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
225 | @type str |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
226 | @param message message to be shown to the user |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
227 | @type str |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
228 | @param force flag indicating to perform the installation |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
229 | without asking the user |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
230 | @type bool |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
231 | @return flag indicating a successful installation |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
232 | @rtype bool |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
233 | """ |
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
|
234 | 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
|
235 | |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
236 | ok = False |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
237 | if force: |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
238 | answer = "y" |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
239 | else: |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
240 | print( |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
241 | "{0}\nShall '{1}' be installed using pip? (Y/n)".format( |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
242 | message, packageName |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
243 | ), |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
244 | end=" ", |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
245 | ) |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
246 | answer = input() # secok |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
247 | 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
|
248 | 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
|
249 | 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
|
250 | "-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
|
251 | "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
|
252 | "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
|
253 | "--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
|
254 | "--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
|
255 | ] |
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
|
256 | 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
|
257 | 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
|
258 | 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
|
259 | exitCode = subprocess.run(args).returncode # secok |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
260 | ok = exitCode == 0 |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
261 | |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
262 | return ok |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
263 | |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
264 | |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
265 | def isPipOutdated(): |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
266 | """ |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
267 | Check, if pip is outdated. |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
268 | |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
269 | @return flag indicating an outdated pip |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
270 | @rtype bool |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
271 | """ |
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
|
272 | 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
|
273 | |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
274 | 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
|
275 | 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
|
276 | 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
|
277 | "-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
|
278 | "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
|
279 | "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
|
280 | "--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
|
281 | "--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
|
282 | ] |
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
|
283 | 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
|
284 | args.append(f"--proxy={proxy}") |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
285 | pipOut = ( |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
286 | 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
|
287 | args, |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
288 | check=True, |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
289 | capture_output=True, |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
290 | text=True, |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
291 | ) |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
292 | .stdout.strip() |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
293 | .splitlines()[0] |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
294 | ) |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
295 | # only the first line contains the JSON data |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
296 | except (OSError, subprocess.CalledProcessError): |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
297 | pipOut = "[]" # default empty list |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
298 | try: |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
299 | jsonList = json.loads(pipOut) |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
300 | except Exception: |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
301 | jsonList = [] |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
302 | for package in jsonList: |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
303 | if isinstance(package, dict) and package["name"] == "pip": |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
304 | print( |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
305 | "'pip' is outdated (installed {0}, available {1})".format( |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
306 | package["version"], package["latest_version"] |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
307 | ) |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
308 | ) |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
309 | return True |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
310 | |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
311 | return False |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
312 | |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
313 | |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
314 | def updatePip(): |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
315 | """ |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
316 | Update the installed pip package. |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
317 | """ |
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
|
318 | global proxy |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
319 | |
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
|
320 | 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
|
321 | answer = input() # secok |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
322 | 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
|
323 | 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
|
324 | 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
|
325 | "-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
|
326 | "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
|
327 | "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
|
328 | "--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
|
329 | ] |
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
|
330 | 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
|
331 | 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
|
332 | 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
|
333 | subprocess.run(args) # secok |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
334 | |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
335 | |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
336 | def doDependancyChecks(): |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
337 | """ |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
338 | Perform some dependency checks. |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
339 | """ |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
340 | try: |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
341 | isSudo = os.getuid() == 0 and sys.platform != "darwin" |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
342 | # disregard sudo installs on macOS |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
343 | except AttributeError: |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
344 | isSudo = False |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
345 | |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
346 | print("Checking dependencies") |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
347 | |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
348 | # update pip first even if we don't need to install anything |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
349 | if not isSudo and isPipOutdated(): |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
350 | updatePip() |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
351 | print("\n") |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
352 | |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
353 | # perform dependency checks |
11022
95c889f18a21
Dropped support for Python 3.8 because that version is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10959
diff
changeset
|
354 | if sys.version_info < (3, 9, 0) or sys.version_info >= (3, 14, 0): |
95c889f18a21
Dropped support for Python 3.8 because that version is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10959
diff
changeset
|
355 | print("Sorry, you must have Python 3.9.0 or higher, but less 3.14.0.") |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
356 | print("Yours is {0}.".format(".".join(str(v) for v in sys.version_info[:3]))) |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
357 | exit(5) |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
358 | |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
359 | requiredModulesList = { |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
360 | # key is pip project name |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
361 | # value is tuple of package name, pip install constraint |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
362 | "coverage": ("coverage", ">=6.5.0"), |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
363 | } |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
364 | |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
365 | # check required modules |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
366 | print("Required Packages") |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
367 | print("-----------------") |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
368 | requiredMissing = False |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
369 | for requiredPackage in sorted(requiredModulesList): |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
370 | try: |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
371 | importlib.import_module(requiredModulesList[requiredPackage][0]) |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
372 | print("Found", requiredPackage) |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
373 | except ImportError as err: |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
374 | if isSudo: |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
375 | print("Required '{0}' could not be detected.".format(requiredPackage)) |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
376 | requiredMissing = True |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
377 | else: |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
378 | pipInstall( |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
379 | requiredPackage + requiredModulesList[requiredPackage][1], |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
380 | "Required '{0}' could not be detected.{1}".format( |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
381 | requiredPackage, "\nError: {0}".format(err) |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
382 | ), |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
383 | force=True, |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
384 | ) |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
385 | if requiredMissing: |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
386 | print("Some required packages are missing and could not be installed.") |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
387 | print("Install them manually.") |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
388 | |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
389 | print() |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
390 | print("All dependencies ok.") |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
391 | print() |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
392 | |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
393 | |
10300
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
394 | def createArgumentParser(): |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
395 | """ |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
396 | Function to create an argument parser. |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
397 | |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
398 | @return created argument parser object |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
399 | @rtype argparse.ArgumentParser |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
400 | """ |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
401 | parser = argparse.ArgumentParser( |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
402 | description="Install eric7 debug clients from the source code tree." |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
403 | ) |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
404 | |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
405 | parser.add_argument( |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
406 | "-d", |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
407 | metavar="dir", |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
408 | default=modDir, |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
409 | help="directory where eric debug client files will be installed" |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
410 | " (default: {0})".format(modDir), |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
411 | ) |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
412 | if not sys.platform.startswith(("win", "cygwin")): |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
413 | parser.add_argument( |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
414 | "-i", |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
415 | metavar="dir", |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
416 | default=distDir, |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
417 | help="temporary install prefix (default: {0})".format(distDir), |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
418 | ) |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
419 | parser.add_argument( |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
420 | "-c", |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
421 | action="store_false", |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
422 | help="don't cleanup old installation first", |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
423 | ) |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
424 | parser.add_argument( |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
425 | "-z", |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
426 | action="store_false", |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
427 | help="don't compile the installed python files", |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
428 | ) |
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
|
429 | 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
|
430 | "--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
|
431 | 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
|
432 | 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
|
433 | 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
|
434 | ) |
10300
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
435 | |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
436 | return parser |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
437 | |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
438 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
439 | def main(argv): |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
440 | """ |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
441 | The main function of the script. |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
442 | |
10420
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
443 | @param argv the list of command line arguments |
5ac83a87954d
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10403
diff
changeset
|
444 | @type list of str |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
445 | """ |
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
|
446 | global modDir, doCleanup, doCompile, distDir, proxy |
9209
b99e7fd55fd3
Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8918
diff
changeset
|
447 | global sourceDir, eric7SourceDir |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
448 | |
11022
95c889f18a21
Dropped support for Python 3.8 because that version is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10959
diff
changeset
|
449 | if sys.version_info < (3, 9, 0) or sys.version_info >= (4, 0, 0): |
95c889f18a21
Dropped support for Python 3.8 because that version is EOL.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10959
diff
changeset
|
450 | print("Sorry, the eric debugger requires Python 3.9 or better for running.") |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
451 | exit(5) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
452 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
453 | if os.path.dirname(argv[0]): |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
454 | os.chdir(os.path.dirname(argv[0])) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
455 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
456 | initGlobals() |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
457 | |
10300
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
458 | parser = createArgumentParser() |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
459 | args = parser.parse_args() |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
460 | |
10300
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
461 | modDir = args.d |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
462 | doCleanup = args.c |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
463 | 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
|
464 | proxy = args.proxy |
10300
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
465 | if not sys.platform.startswith(("win", "cygwin")) and args.i: |
60e8f2175b3b
Changed the install and uninstall scripts to use 'argparse' instead of 'getopt'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10170
diff
changeset
|
466 | distDir = os.path.normpath(args.i) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
467 | |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
468 | # check dependencies |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
469 | doDependancyChecks() |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
470 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
471 | installFromSource = not os.path.isdir(sourceDir) |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
472 | if installFromSource: |
6959
dfb8a57de154
install-debugclients: fixed an issue causing cleanup to fail.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
473 | sourceDir = os.path.abspath("..") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
474 | |
9209
b99e7fd55fd3
Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8918
diff
changeset
|
475 | eric7SourceDir = ( |
b99e7fd55fd3
Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8918
diff
changeset
|
476 | os.path.join(sourceDir, "eric7") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
477 | if os.path.exists(os.path.join(sourceDir, "eric7")) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
478 | else os.path.join(sourceDir, "src", "eric7") |
9209
b99e7fd55fd3
Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8918
diff
changeset
|
479 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
480 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
481 | # cleanup source if installing from source |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
482 | if installFromSource: |
9694
90a7081e2837
Updated the various scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9690
diff
changeset
|
483 | print("Cleaning up source ...", end="", flush=True) |
8314
e3642a6a1e71
Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8260
diff
changeset
|
484 | cleanupSource(os.path.join(eric7SourceDir, "DebugClients")) |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
485 | print(" Done") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
486 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
487 | # cleanup old installation |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
488 | try: |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
489 | if doCleanup: |
9694
90a7081e2837
Updated the various scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9690
diff
changeset
|
490 | print("Cleaning up old installation ...", end="", flush=True) |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
491 | if distDir: |
10403
ea3320d5e8e9
Changed code using "shutil.rmtree()" more readable by adding "ignore_errors=" where this parameter is non-default.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10300
diff
changeset
|
492 | shutil.rmtree(distDir, ignore_errors=True) |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
493 | else: |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
494 | cleanUp() |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
495 | print(" Done") |
7836
2f0d208b8137
Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7639
diff
changeset
|
496 | except OSError as msg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
497 | sys.stderr.write("Error: {0}\nTry install as root.\n".format(msg)) |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
498 | exit(7) |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
499 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
500 | if doCompile: |
9694
90a7081e2837
Updated the various scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9690
diff
changeset
|
501 | print("Compiling source files ...", end="", flush=True) |
5179
5f56410e7624
Combined version of the Python debugger.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
5145
diff
changeset
|
502 | skipRe = re.compile(r"DebugClients[\\/]Python[\\/]") |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
503 | sys.stdout = io.StringIO() |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
504 | if distDir: |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
505 | compileall.compile_dir( |
8314
e3642a6a1e71
Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8260
diff
changeset
|
506 | os.path.join(eric7SourceDir, "DebugClients"), |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
507 | ddir=os.path.join(distDir, modDir, installPackage), |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
508 | rx=skipRe, |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
509 | quiet=True, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
510 | ) |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
511 | else: |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
512 | compileall.compile_dir( |
8314
e3642a6a1e71
Finished renaming eric6 to eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8260
diff
changeset
|
513 | os.path.join(eric7SourceDir, "DebugClients"), |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
514 | ddir=os.path.join(modDir, installPackage), |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
515 | rx=skipRe, |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
516 | quiet=True, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
517 | ) |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
518 | sys.stdout = sys.__stdout__ |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
519 | print(" Done") |
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
520 | |
9694
90a7081e2837
Updated the various scripts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9690
diff
changeset
|
521 | print("Installing eric debug clients ...", end="", flush=True) |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
522 | res = installEricDebugClients() |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
523 | print(" Done") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
524 | |
9690
2dc33116df50
Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9674
diff
changeset
|
525 | print("Installation complete.") |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
526 | print() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
527 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
528 | exit(res) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
529 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
530 | |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
531 | if __name__ == "__main__": |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
532 | try: |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
533 | main(sys.argv) |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
534 | except SystemExit: |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
535 | raise |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
536 | except Exception: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
537 | print( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
538 | """An internal error occured. Please report all the output""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
539 | """ of the program,\nincluding the following traceback, to""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
540 | """ eric-bugs@eric-ide.python-projects.org.\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
541 | ) |
5053
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
542 | raise |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
543 | |
dac4920b55ad
Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
544 | # |
11148
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
545 | # eflag: noqa = M-801 |