scripts/install-server.py

Fri, 14 Jun 2024 10:57:32 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 14 Jun 2024 10:57:32 +0200
branch
server
changeset 10781
0e3d6e22efaf
child 10801
5859861e7a1f
permissions
-rw-r--r--

Added scripts to install or uninstall the eric-ide server from sources.

10781
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 #!/usr/bin/env python3
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2 # -*- coding: utf-8 -*-
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 # Copyright (c) 2024 Detlev Offenbach <detlev@die-offenbachs.de>
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5 #
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 # This is the install script for the eric-ide server. It may be used
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 # to just install the server for remote editing and debugging.
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 #
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 Installation script for the eric-ide server.
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 import argparse
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 import compileall
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 import contextlib
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 import fnmatch
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 import importlib
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 import io
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 import json
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 import os
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 import re
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 import shutil
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 import subprocess
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 import sys
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 import sysconfig
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 # Define the globals.
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 currDir = os.getcwd()
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 scriptsDir = None
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 modDir = None
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 pyModDir = None
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 distDir = None
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 installPackage = "eric7"
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 doCleanup = True
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 doCompile = True
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 doDepChecks = True
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 sourceDir = "eric"
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 eric7SourceDir = ""
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
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 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
43 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 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
45
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 @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
47 @type int
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 global currDir
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 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
52 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
53 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
54
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 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
56
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 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
58
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 def initGlobals():
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 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
63 simple assignment.
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 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
66
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 # 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
68 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
69 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
70 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
71 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
72 else:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 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
74
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 # 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
76 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
77 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
78 # 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
79 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
80 pyModDir = modDir
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 # 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
83 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
84 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
85 # 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
86 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
87
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 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
90 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 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
92
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 @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
94 @type str
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 @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
96 @type str
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 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
99 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
100
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 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
103 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 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
105
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 @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
107 @type str
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 @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
109 @type str
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 @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
111 @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
112 @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
113 @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
114 @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
115 be skipped
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 @type str
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 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
119 excludeDirs = []
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 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
121 excludePatterns = []
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 try:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 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
124 except OSError:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 # 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
126 return
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 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
129 skipIt = False
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 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
131 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
132 skipIt = True
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 break
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 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
135 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
136 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
137 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
138 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
139 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
140 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
141 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
142 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
143 break
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 else:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 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
146 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
147
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 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
150 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 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
152 and directories.
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 @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
155 @type str
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 # 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
158 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
159 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
160 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
161 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
162
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 # 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
164 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
165 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
166 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
167 cleanupSource(name)
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 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
169 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
170
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 def cleanUp():
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 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
175 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 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
177
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 try:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 # 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
180 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
181 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
182 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
183 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
184 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
185 exit(7)
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 # 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
188 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
189 try:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 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
191 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
192 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
193 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
194 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
195 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
196 exit(7)
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197
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 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
200 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 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
202
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 @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
204 @type str
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 @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
206 @type str
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 @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
208 @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
209 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 wnames = (
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 [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
212 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
213 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
214 )
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 return wnames
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217
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 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
220 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 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
222
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 @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
224 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
225 @type str
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 @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
227 @type str
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 @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
229 @type str
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230 @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
231 @rtype str
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 # 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
234 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
235 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
236 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
237 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
238 )
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 # 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
241 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
242 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
243 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
244 wname = wfile
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 wrapper = (
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 """#!/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
247 """\n"""
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
248 """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
249 )
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 # *nix systems
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
252 else:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
253 wname = wfile
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
254 wrapper = (
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
255 """#!/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
256 """\n"""
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
257 """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
258 )
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 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
261 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
262 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
263
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264 return wname
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265
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 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
268 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 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
270
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 @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
272 @type str
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 @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
274 @type str
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 @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
276 @type int
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 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
279 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
280 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
281 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
282
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 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
285 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
286 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
287
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288 @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
289 @type str
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
290 @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
291 @type str
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292 @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
293 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
294 @type bool
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 @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
296 @rtype bool
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
297 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
298 ok = False
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
299 if force:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
300 answer = "y"
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
301 else:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
302 print(
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
303 "{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
304 message, packageName
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
305 ),
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
306 end=" ",
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
307 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
308 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
309 if answer in ("", "Y", "y"):
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310 exitCode = subprocess.run( # secok
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
311 [
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
312 sys.executable,
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313 "-m",
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 "pip",
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 "install",
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316 "--prefer-binary",
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 "--upgrade",
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318 packageName,
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
319 ]
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 ).returncode
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 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
322
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323 return ok
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326 def isPipOutdated():
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
327 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
328 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
329
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
330 @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
331 @rtype bool
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
333 try:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 pipOut = (
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335 subprocess.run( # secok
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 [sys.executable, "-m", "pip", "list", "--outdated", "--format=json"],
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337 check=True,
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
338 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
339 text=True,
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
340 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 .stdout.strip()
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
342 .splitlines()[0]
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
343 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
344 # 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
345 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
346 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
347 try:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348 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
349 except Exception:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
350 jsonList = []
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
351 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
352 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
353 print(
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 "'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
355 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
356 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
358 return True
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 return False
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
361
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
362
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
363 def updatePip():
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
364 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
365 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
366 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
367 global yes2All
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
368
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
369 if yes2All:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370 answer = "y"
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
371 else:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
372 print("Shall 'pip' be updated (recommended)? (Y/n)", end=" ")
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
373 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
374 if answer in ("", "Y", "y"):
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
375 subprocess.run( # secok
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376 [sys.executable, "-m", "pip", "install", "--upgrade", "pip"]
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
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 def doDependancyChecks():
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
381 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
382 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
383 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
384 try:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
385 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
386 # 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
387 except AttributeError:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
388 isSudo = False
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
389
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
390 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
391
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
392 # 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
393 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
394 updatePip()
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
395 print("\n")
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
396
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
397 # perform dependency checks
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
398 if sys.version_info < (3, 8, 0) or sys.version_info >= (3, 13, 0):
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
399 print("Sorry, you must have Python 3.8.0 or higher, but less 3.13.0.")
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
400 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
401 exit(5)
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 requiredModulesList = {
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
404 # 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
405 # 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
406 "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
407 "EditorConfig": ("editorconfig", ""),
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
408 }
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
410 # 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
411 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
412 print("-----------------")
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
413 requiredMissing = False
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
414 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
415 try:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
416 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
417 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
418 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
419 if isSudo:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
420 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
421 requiredMissing = True
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
422 else:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
423 pipInstall(
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
424 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
425 "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
426 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
427 ),
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
428 force=True,
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 if requiredMissing:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
431 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
432 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
433
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
434 print()
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
435 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
436 print()
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
437
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
438
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
439 def installEricServer():
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
440 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
441 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
442
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
443 @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
444 @rtype int
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
445 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
446 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
447
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
448 # 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
449 targetDir = (
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
450 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
451 if distDir
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
452 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
453 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
454 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
455 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
456
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
457 # 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
458 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
459 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
460 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
461 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
462
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
463 try:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
464 # 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
465 # 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
466 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
467 copyTree(
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
468 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
469 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
470 ["*.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
471 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
472 # 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
473 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
474 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
475 shutilCopy(
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
476 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
477 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
478 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
479
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
480 # 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
481 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
482 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
483
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
484 # 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
485 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
486 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
487
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
488 # 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
489 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
490 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
491
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
492 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
493 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
494 return 7
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
495
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
496 return 0
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
497
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
498
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
499 def createArgumentParser():
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 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
502
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
503 @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
504 @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
505 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
506 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
507 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
508 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
509
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
510 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
511 "-d",
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
512 metavar="dir",
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
513 default=modDir,
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
514 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
515 " (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
516 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
517 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
518 "-b",
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
519 metavar="dir",
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
520 default=scriptsDir,
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
521 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
522 scriptsDir
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 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
525 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
526 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
527 "-i",
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
528 metavar="dir",
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
529 default=distDir,
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
530 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
531 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
532 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
533 "-c",
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
534 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
535 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
536 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
537 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
538 "-z",
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
539 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
540 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
541 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
542 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
543 "-x",
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
544 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
545 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
546 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
547
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
548 return parser
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
549
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
550
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
551 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
552 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
553 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
554
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
555 @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
556 @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
557 """
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
558 global modDir, doCleanup, doCompile, doDepChecks, distDir, scriptsDir
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
559 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
560
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
561 if sys.version_info < (3, 8, 0) or sys.version_info >= (4, 0, 0):
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
562 print("Sorry, the eric debugger requires Python 3.8 or better for running.")
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
563 exit(5)
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
564
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
565 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
566 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
567
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
568 initGlobals()
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
569
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
570 parser = createArgumentParser()
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
571 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
572
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
573 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
574 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
575 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
576 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
577 doCompile = args.z
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
578 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
579 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
580
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
581 # check dependencies
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
582 if doDepChecks:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
583 doDependancyChecks()
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
584
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
585 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
586 if installFromSource:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
587 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
588
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
589 eric7SourceDir = (
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
590 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
591 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
592 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
593 )
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 # 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
596 if installFromSource:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
597 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
598 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
599 print(" Done")
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
600
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
601 # 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
602 try:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
603 if doCleanup:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
604 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
605 if distDir:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
606 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
607 else:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
608 cleanUp()
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
609 print(" Done")
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
610 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
611 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
612 exit(7)
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
613
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
614 if doCompile:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
615 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
616 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
617 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
618 if distDir:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
619 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
620 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
621 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
622 rx=skipRe,
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
623 quiet=True,
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
624 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
625 else:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
626 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
627 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
628 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
629 rx=skipRe,
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
630 quiet=True,
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
631 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
632 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
633 print(" Done")
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
634
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
635 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
636 res = installEricServer()
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
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
639 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
640 print()
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 exit(res)
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
643
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
644
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
645 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
646 try:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
647 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
648 except SystemExit:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
649 raise
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
650 except Exception:
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
651 print(
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
652 """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
653 """ 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
654 """ 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
655 )
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
656 raise
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
657
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
658 #
0e3d6e22efaf Added scripts to install or uninstall the eric-ide server from sources.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
659 # eflag: noqa = M801

eric ide

mercurial