scripts/install-debugclients.py

branch
eric7
changeset 10801
5859861e7a1f
parent 10781
0e3d6e22efaf
child 10959
377ef1594e36
--- a/scripts/install-debugclients.py	Tue Jun 25 14:44:19 2024 +0200
+++ b/scripts/install-debugclients.py	Tue Jun 25 16:15:59 2024 +0200
@@ -33,6 +33,7 @@
 installPackage = "eric7"
 doCleanup = True
 doCompile = True
+proxy = None
 sourceDir = "eric"
 eric7SourceDir = ""
 
@@ -230,6 +231,8 @@
     @return flag indicating a successful installation
     @rtype bool
     """
+    global proxy
+
     ok = False
     if force:
         answer = "y"
@@ -242,17 +245,18 @@
         )
         answer = input()  # secok
     if answer in ("", "Y", "y"):
-        exitCode = subprocess.run(  # secok
-            [
-                sys.executable,
-                "-m",
-                "pip",
-                "install",
-                "--prefer-binary",
-                "--upgrade",
-                packageName,
-            ]
-        ).returncode
+        args = [
+            sys.executable,
+            "-m",
+            "pip",
+            "install",
+            "--prefer-binary",
+            "--upgrade",
+        ]
+        if proxy:
+            args.append(f"--proxy={proxy}")
+        args.append(packageName)
+        exitCode = subprocess.run(args).returncode  # secok
         ok = exitCode == 0
 
     return ok
@@ -265,10 +269,22 @@
     @return flag indicating an outdated pip
     @rtype bool
     """
+    global proxy
+
     try:
+        args = [
+            sys.executable,
+            "-m",
+            "pip",
+            "list",
+            "--outdated",
+            "--format=json",
+        ]
+        if proxy:
+            args.append(f"--proxy={proxy}")
         pipOut = (
             subprocess.run(  # secok
-                [sys.executable, "-m", "pip", "list", "--outdated", "--format=json"],
+                args,
                 check=True,
                 capture_output=True,
                 text=True,
@@ -299,17 +315,22 @@
     """
     Update the installed pip package.
     """
-    global yes2All
+    global proxy
 
-    if yes2All:
-        answer = "y"
-    else:
-        print("Shall 'pip' be updated (recommended)? (Y/n)", end=" ")
-        answer = input()  # secok
+    print("Shall 'pip' be updated (recommended)? (Y/n)", end=" ")
+    answer = input()  # secok
     if answer in ("", "Y", "y"):
-        subprocess.run(  # secok
-            [sys.executable, "-m", "pip", "install", "--upgrade", "pip"]
-        )
+        args = [
+            sys.executable,
+            "-m",
+            "pip",
+            "install",
+            "--upgrade",
+        ]
+        if proxy:
+            args.append(f"--proxy={proxy}")
+        args.append("pip")
+        subprocess.run(args)  # secok
 
 
 def doDependancyChecks():
@@ -405,6 +426,12 @@
         action="store_false",
         help="don't compile the installed python files",
     )
+    parser.add_argument(
+        "--proxy",
+        default=None,
+        metavar="url",
+        help="HTTP proxy url will be used with pip (default: no proxy used)",
+    )
 
     return parser
 
@@ -416,7 +443,7 @@
     @param argv the list of command line arguments
     @type list of str
     """
-    global modDir, doCleanup, doCompile, distDir
+    global modDir, doCleanup, doCompile, distDir, proxy
     global sourceDir, eric7SourceDir
 
     if sys.version_info < (3, 8, 0) or sys.version_info >= (4, 0, 0):
@@ -434,6 +461,7 @@
     modDir = args.d
     doCleanup = args.c
     doCompile = args.z
+    proxy = args.proxy
     if not sys.platform.startswith(("win", "cygwin")) and args.i:
         distDir = os.path.normpath(args.i)
 

eric ide

mercurial