scripts/install-dependencies.py

branch
eric7
changeset 10801
5859861e7a1f
parent 10679
4d3e0ce54322
child 10828
fc1310995b98
--- a/scripts/install-dependencies.py	Tue Jun 25 14:44:19 2024 +0200
+++ b/scripts/install-dependencies.py	Tue Jun 25 16:15:59 2024 +0200
@@ -30,27 +30,30 @@
     sys.exit(rcode)
 
 
-def pipInstall(packageName):
+def pipInstall(packageName, proxy):
     """
     Install the given package via pip.
 
     @param packageName name of the package to be installed
     @type str
+    @param proxy URL of a network proxy to be used
+    @type str
     @return flag indicating a successful installation
     @rtype bool
     """
     ok = False
-    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(proxy)
+    args.append(packageName)
+    exitCode = subprocess.run(args).returncode  # secok
     ok = exitCode == 0
 
     return ok
@@ -92,6 +95,13 @@
         "esprima",
     )
 
+    if "--proxy" in sys.argv:
+        proxyIndex = sys.argv.index("--proxy")
+        proxy = sys.argv[proxyIndex + 1]
+        del sys.argv[proxyIndex : proxyIndex + 2]
+    else:
+        proxy = None
+
     packages = []
     if len(sys.argv) == 2:
         if sys.argv[1] == "--all":
@@ -103,7 +113,7 @@
 
     if not packages:
         print("Usage:")
-        print("    install-dependencies --all | --optional | --required")
+        print("    install-dependencies [--proxy url] --all | --optional | --required")
         print("where:")
         print("    --all         install all dependencies")
         print("    --optional    install all optional dependencies")
@@ -113,7 +123,7 @@
 
     failedPackages = []
     for package in packages:
-        ok = pipInstall(package)
+        ok = pipInstall(package, proxy)
         if not ok:
             failedPackages.append(package)
 

eric ide

mercurial