install new addons func
							parent
							
								
									21bbc6c6b2
								
							
						
					
					
						commit
						435230aa6e
					
				| 
						 | 
					@ -48,3 +48,26 @@ def live_to_esoui(*, path: Path, esoui_uris: list):
 | 
				
			||||||
    logging.info(
 | 
					    logging.info(
 | 
				
			||||||
        f"{live_name} updated from {live_version} to {esoui_version} at {live_path}"
 | 
					        f"{live_name} updated from {live_version} to {esoui_version} at {live_path}"
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def esoui_to_live(*, esoui_uris: list, live_path: Path):
 | 
				
			||||||
 | 
					    for addon_name, version, esoui_dowload_uri in esoui_uris:
 | 
				
			||||||
 | 
					        if addon_name in list(live_path.iterdir()):
 | 
				
			||||||
 | 
					            logging.info(f"{addon_name} already installed.")
 | 
				
			||||||
 | 
					            continue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        response = requests.get(esoui_dowload_uri)
 | 
				
			||||||
 | 
					        response.raise_for_status()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        temp_dir = TemporaryDirectory()
 | 
				
			||||||
 | 
					        temp_path = Path(temp_dir.name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        zip_file = ZipFile(BytesIO(response.content))
 | 
				
			||||||
 | 
					        zip_file.extractall(temp_path)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        live_dest = live_path.joinpath(each.name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        for each in temp_path.iterdir():
 | 
				
			||||||
 | 
					            copytree(each, live_dest)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        logging.info(f"{addon_name} installed {version} at {live_dest}")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -65,3 +65,5 @@ def periodical_script():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for child in live_path.iterdir():
 | 
					    for child in live_path.iterdir():
 | 
				
			||||||
        compare.live_to_esoui(path=child, esoui_uris=esoui_uris)
 | 
					        compare.live_to_esoui(path=child, esoui_uris=esoui_uris)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    compare.esoui_to_live(esoui_uris=esoui_uris, live_path=live_path)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,21 +0,0 @@
 | 
				
			||||||
[build-system]
 | 
					 | 
				
			||||||
requires = ["poetry"]
 | 
					 | 
				
			||||||
build-backend = "poetry.masonry.api"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[tool.poetry]
 | 
					 | 
				
			||||||
authors = ["py <py@py>"]
 | 
					 | 
				
			||||||
description = ""
 | 
					 | 
				
			||||||
license = "MIT"
 | 
					 | 
				
			||||||
name = "eso-banana"
 | 
					 | 
				
			||||||
version = "0.0.1"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[[tool.poetry.packages]]
 | 
					 | 
				
			||||||
include = "banana"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[tool.poetry.scripts]
 | 
					 | 
				
			||||||
eso-banana-script = "banana:scripts.periodical_script"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[tool.poetry.dependencies]
 | 
					 | 
				
			||||||
packaging = ""
 | 
					 | 
				
			||||||
PyYAML = ""
 | 
					 | 
				
			||||||
requests = ""
 | 
					 | 
				
			||||||
		Loading…
	
		Reference in New Issue