--- 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)