Add option to install plugin dependencies (#3068)

Co-authored-by: Nicholas Tindle <nick@ntindle.com>
This commit is contained in:
Daniel Chen
2023-04-24 15:42:10 -07:00
committed by GitHub
parent dfcbf6eee6
commit 29284a5460

View File

@@ -0,0 +1,27 @@
import os
import subprocess
import sys
import zipfile
from pathlib import Path
def main():
# Plugin packages
plugins_dir = Path(os.getenv("PLUGINS_DIR", "plugins"))
for plugin in plugins_dir.glob("*.zip"):
with zipfile.ZipFile(str(plugin), "r") as zfile:
try:
basedir = zfile.namelist()[0]
basereqs = os.path.join(basedir, "requirements.txt")
extracted = zfile.extract(basereqs, path=plugins_dir)
subprocess.check_call(
[sys.executable, "-m", "pip", "install", "-r", extracted]
)
os.remove(extracted)
os.rmdir(os.path.join(plugins_dir, basedir))
except KeyError:
continue
if __name__ == "__main__":
main()