scripts/install-server.py

Tue, 18 Mar 2025 18:20:04 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 18 Mar 2025 18:20:04 +0100
branch
eric7
changeset 11175
ca7057547506
parent 11148
15e30f0c76a8
permissions
-rw-r--r--

Regenerated the source code documentation.

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

eric ide

mercurial