scripts/install-debugclients.py

Sat, 01 May 2021 14:27:20 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 01 May 2021 14:27:20 +0200
branch
maintenance
changeset 8273
698ae46f40a4
parent 8043
0acf98cd089a
parent 8260
2161475d9639
permissions
-rw-r--r--

Merged with default branch to prepare release 21.5.

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
7923
91e843545d9a Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
4 # Copyright (c) 2016 - 2021 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
7639
422fd05e9c91 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7637
diff changeset
14 import io
5053
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 import sys
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 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
17 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
18 import compileall
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 import shutil
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 import fnmatch
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
21 import contextlib
5053
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 # 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
24 progName = None
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 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
26 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
27 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
28 distDir = None
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 installPackage = "eric6DebugClients"
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 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
31 doCompile = True
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 sourceDir = "eric"
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
33 eric6SourceDir = os.path.join(sourceDir, "eric6")
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
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 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
37 """
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 Exit the install script.
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 @param rcode result code to report back (integer)
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 """
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 global currDir
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 if sys.platform.startswith("win"):
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
45 with contextlib.suppress():
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
46 input("Press enter to continue...") # secok
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 os.chdir(currDir)
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 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
51
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 def usage(rcode=2):
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 """
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 Display a usage message and exit.
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 @param rcode the return code passed back to the calling process.
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 global progName, modDir, distDir
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 print()
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 print("Usage:")
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 if sys.platform == "darwin":
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 print(" {0} [-chz] [-d dir] [-i dir]".format(progName))
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 elif sys.platform.startswith("win"):
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 print(" {0} [-chz] [-d dir]".format(progName))
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 else:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 print(" {0} [-chz][-d dir] [-i dir]".format(progName))
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 print("where:")
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 print(" -h, --help display this help message")
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
71 print(" -d dir where eric debug client files will be installed")
5053
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 print(" (default: {0})".format(modDir))
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 if not sys.platform.startswith("win"):
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 print(" -i dir temporary install prefix")
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 print(" (default: {0})".format(distDir))
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 print(" -c don't cleanup old installation first")
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 print(" -z don't compile the installed python files")
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 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
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
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 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
83 """
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 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
85 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
86 """
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 global modDir, pyModDir
6304
68f9aa03bf75 install: show a message to the user if the distutile package cannot be imported.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
88
68f9aa03bf75 install: show a message to the user if the distutile package cannot be imported.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
89 try:
68f9aa03bf75 install: show a message to the user if the distutile package cannot be imported.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
90 import distutils.sysconfig
68f9aa03bf75 install: show a message to the user if the distutile package cannot be imported.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
91 except ImportError:
68f9aa03bf75 install: show a message to the user if the distutile package cannot be imported.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
92 print("Please install the 'distutils' package first.")
68f9aa03bf75 install: show a message to the user if the distutile package cannot be imported.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
93 exit(5)
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
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 modDir = distutils.sysconfig.get_python_lib(True)
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 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
97
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98
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
99 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
100 """
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 Copy files of a directory tree.
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 @param src name of the source directory
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 @param dst name of the destination directory
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 @param filters list of filter pattern determining the files to be copied
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 @param excludeDirs list of (sub)directories to exclude from copying
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7894
diff changeset
107 @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
108 be skipped
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 """
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
110 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
111 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
112 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
113 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
114 try:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 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
116 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
117 # 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
118 return
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 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
121 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
122 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
123 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
124 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
125 break
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 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
127 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
128 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
129 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
130 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
131 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
132 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
133 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
134 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
135 break
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 else:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 if os.path.isdir(srcname) and srcname not in excludeDirs:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 copyTree(srcname, dstname, filters,
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 excludePatterns=excludePatterns)
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 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
143 """
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 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
145 and directories.
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 @param dirName name of the directory to prune (string)
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 # 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
150 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
151 shutil.rmtree(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
152 for name in [f for f 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
153 if fnmatch.fnmatch(f, "*.pyc")]:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 os.remove(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
155
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 # 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
157 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
158 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
159 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
160 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
161 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
162 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
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 cleanUp():
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 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
168 """
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 global pyModDir
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 try:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 # 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
173 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
174 if os.path.exists(dirname):
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 shutil.rmtree(dirname, 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
176 except OSError as 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
177 sys.stderr.write(
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 'Error: {0}\nTry install with admin rights.\n'.format(msg))
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 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
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 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
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 Wrapper function around shutil.copy() to ensure the permissions.
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 @param src source file name (string)
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 @param dst destination file name or directory name (string)
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7894
diff changeset
188 @param perm permissions to be set (integer)
5053
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 """
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 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
191 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
192 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
193 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
194
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 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
197 """
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 Actually perform the installation steps.
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 @return result code (integer)
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 """
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 global distDir, doCleanup, sourceDir, modDir
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 # 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
205 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
206 os.path.normpath(os.path.join(distDir, installPackage))
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
207 if distDir else
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
208 os.path.join(modDir, installPackage)
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
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
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 try:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 # 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
213 # 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
214 copyTree(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
215 os.path.join(eric6SourceDir, "DebugClients"), targetDir,
5053
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 ['*.py', '*.pyc', '*.pyo', '*.pyw'],
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
217 [os.path.join(sourceDir, ".ropeproject")],
5053
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 excludePatterns=["eric6config.py*"])
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 # copy the license file
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
221 shutilCopy(os.path.join(sourceDir, "docs", "LICENSE.GPL3"), targetDir)
5053
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222
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
223 except OSError as 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
224 sys.stderr.write(
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 'Error: {0}\nTry install with admin rights.\n'.format(msg))
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 return(7)
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 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
229
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 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
232 """
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 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
234
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 @param argv the list of command line arguments.
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 """
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 import getopt
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 # Parse the command line.
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 global progName, modDir, doCleanup, doCompile, distDir
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 global sourceDir
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242
7894
4370a8b30648 Changed the minimum supported Python version to 3.6.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
243 if sys.version_info < (3, 6, 0) or sys.version_info >= (4, 0, 0):
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
244 print('Sorry, the eric debugger requires Python 3.6 or better'
7637
c878e8255972 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
245 ' 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
246 exit(5)
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
248 progName = os.path.basename(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
249
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
250 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
251 os.chdir(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
252
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
253 initGlobals()
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
254
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
255 try:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
256 if sys.platform.startswith("win"):
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
257 optlist, args = getopt.getopt(
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
258 argv[1:], "chzd:", ["help"])
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259 elif sys.platform == "darwin":
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260 optlist, args = getopt.getopt(
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261 argv[1:], "chzd:i:", ["help"])
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 else:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263 optlist, args = getopt.getopt(
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264 argv[1:], "chzd:i:", ["help"])
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265 except getopt.GetoptError as err:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266 print(err)
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267 usage()
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
268
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 for opt, arg in optlist:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 if opt in ["-h", "--help"]:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 usage(0)
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 elif opt == "-d":
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 modDir = arg
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 elif opt == "-i":
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 distDir = os.path.normpath(arg)
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
276 elif opt == "-c":
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 doCleanup = False
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 elif opt == "-z":
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279 doCompile = False
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
281 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
282 if installFromSource:
6959
dfb8a57de154 install-debugclients: fixed an issue causing cleanup to fail.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
283 sourceDir = os.path.abspath("..")
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
284 eric6SourceDir = os.path.join(sourceDir, "eric6")
5053
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
286 # 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
287 if installFromSource:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288 print("Cleaning up source ...")
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
289 cleanupSource(os.path.join(eric6SourceDir, "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
290 print()
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
291
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292 # 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
293 try:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 if doCleanup:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 print("Cleaning up 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
296 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
297 shutil.rmtree(distDir, True)
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
298 else:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
299 cleanUp()
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
300 except OSError as 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
301 sys.stderr.write('Error: {0}\nTry install as root.\n'.format(msg))
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
302 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
303
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
304 if doCompile:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
305 print("\nCompiling source files ...")
5179
5f56410e7624 Combined version of the Python debugger.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5145
diff changeset
306 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
307 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
308 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
309 compileall.compile_dir(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
310 os.path.join(eric6SourceDir, "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
311 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
312 rx=skipRe,
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313 quiet=True)
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 else:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 compileall.compile_dir(
6942
2602857055c5 Major restructuring of the source tree to get prepared for a setup.py based installation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
316 os.path.join(eric6SourceDir, "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
317 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
318 rx=skipRe,
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
319 quiet=True)
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 sys.stdout = sys.__stdout__
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
321 print("\nInstalling 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
322 res = installEricDebugClients()
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324 print("\nInstallation complete.")
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 print()
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
327 exit(res)
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
328
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
329
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
330 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
331 try:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332 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
333 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
334 raise
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335 except Exception:
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 print("""An internal error occured. Please report all the output"""
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337 """ of the program,\nincluding the following traceback, to"""
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
338 """ eric-bugs@eric-ide.python-projects.org.\n""")
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
339 raise
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
340
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 #
dac4920b55ad Added scripts to just install the eric6 debug clients in an eric6DebugClients package
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
342 # eflag: noqa = M801

eric ide

mercurial