#!/usr/bin/env python3 # This script is used in the docker containers to preinstall # all platformio libraries in the global storage import configparser import subprocess import sys config = configparser.ConfigParser(inline_comment_prefixes=(';', )) config.read(sys.argv[1]) libs = [] # Extract from every lib_deps key in all sections for section in config.sections(): conf = config[section] if "lib_deps" not in conf: continue for lib_dep in conf["lib_deps"].splitlines(): if not lib_dep: # Empty line or comment continue if lib_dep.startswith("${"): # Extending from another section continue if "@" not in lib_dep: # No version pinned, this is an internal lib continue libs.append(lib_dep) subprocess.check_call(['platformio', 'lib', '-g', 'install', *libs])