2024-07-30 16:48:29 +03:00

71 lines
1.6 KiB
Python

import requests, os, shutil
import re, sys, json, time, sysconfig
from inspect import getmembers, isfunction
from venv import create
from os.path import join, expanduser, abspath
import subprocess
import shutil
def main():
input = None
if len(sys.argv) < 2:
input = readJSONInput()
output = {}
run(input, output)
out = json.dumps(output)
print(out + "\n")
def readJSONInput():
input = sys.stdin.read()
return json.loads(input)
def run(input, output):
if input == "None" or input == "":
return
PLUGIN_DIR = input["server_connection"]["PluginDir"]
modeArg = input['args']["mode"]
try:
if modeArg == "" or modeArg == "add":
return
elif modeArg == "process_py_stashapi_tools":
get_download_py_stashapp_tools(PLUGIN_DIR)
except Exception as e:
raise
output["error"] = str(e)
return
output["output"] = "ok"
def get_download_py_stashapp_tools(PLUGIN_DIR):
org_packagedir = sysconfig.get_paths()["purelib"] # /usr/lib/python3.12/site-packages
used_dir = f"{PLUGIN_DIR}"
create(f"{used_dir}/venv/", with_pip=True)
# where requirements.txt is in same dir as this script
subprocess.run([f"{used_dir}/venv/bin/pip", "install", "-r", abspath(f"{used_dir}/packages/stashtools.txt")],stdout=None)
# venv/lib/python3.12/site-packages/stashapp_tools-
src = f"{used_dir}/venv/lib/python3.11/site-packages"
destination = shutil.copytree(src, org_packagedir,ignore_func,None,shutil.copy2,False,True)
fp = open(f'{used_dir}/copydo.txt', 'w+')
fp.write("%s\n" % print(destination))
def ignore_func(src, names):
return ['env'] if 'env' in names else []
main()