Tue, 20 Jun 2023 11:11:35 +0200
Corrected the install and uninstall scripts to cope use the user site-packages if a global install without admin rights is done.
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright (c) 2016 - 2023 Detlev Offenbach <detlev@die-offenbachs.de> # # This is the uninstall script for the eric debug client. # """ Unnstallation script for the eric debug clients. """ import contextlib import getopt import os import shutil import sys import sysconfig # Define the globals. progName = None currDir = os.getcwd() modDir = None pyModDir = None installPackage = "eric7" def exit(rcode=0): """ Exit the install script. @param rcode result code to report back (integer) """ global currDir if sys.platform.startswith("win"): with contextlib.suppress(EOFError): input("Press enter to continue...") # secok os.chdir(currDir) sys.exit(rcode) def usage(rcode=2): """ Display a usage message and exit. @param rcode return code passed back to the calling process (integer) """ global progName print("Usage:") print(" {0} [-h]".format(progName)) print("where:") print(" -h display this help message") exit(rcode) def initGlobals(): """ Module function to set the values of globals that need more than a simple assignment. """ global modDir, pyModDir modDir = sysconfig.get_path("platlib") if not os.access(modDir, os.W_OK): # can't write to the standard path, use the 'user' path instead if sys.platform.startswith(("win", "cygwin")): scheme = "nt_user" elif sys.platform == "darwin": scheme = "osx_framework_user" else: scheme = "posix_user" modDir = sysconfig.get_path("platlib", scheme) pyModDir = modDir def uninstallEricDebugClients(): """ Uninstall the old eric debug client files. """ global pyModDir try: # Cleanup the install directories dirname = os.path.join(pyModDir, installPackage) if os.path.exists(dirname): shutil.rmtree(dirname, True) except OSError as msg: sys.stderr.write("Error: {0}\nTry uninstall with admin rights.\n".format(msg)) exit(7) def main(argv): """ The main function of the script. @param argv the list of command line arguments. """ initGlobals() # Parse the command line. global progName progName = os.path.basename(argv[0]) try: optlist, args = getopt.getopt(argv[1:], "hy") except getopt.GetoptError: usage() for opt, _arg in optlist: if opt in ["-h", "--help"]: usage(0) print("\nUninstalling eric debug clients ...") uninstallEricDebugClients() print("\nUninstallation complete.") print() exit(0) if __name__ == "__main__": try: main(sys.argv) except SystemExit: raise except Exception: print( """An internal error occured. Please report all the output""" """ of the program,\nincluding the following traceback, to""" """ eric-bugs@eric-ide.python-projects.org.\n""" ) raise # # eflag: noqa = M801