mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2025-03-10 17:26:15 +01:00
fix: re-mount routes for restored extensions
This commit is contained in:
parent
aa006b66d1
commit
6773f33ad1
1 changed files with 16 additions and 7 deletions
|
@ -126,22 +126,18 @@ async def check_installed_extensions(app: FastAPI):
|
||||||
The 'data' directory (where the '.zip' files live) is expected to persist state.
|
The 'data' directory (where the '.zip' files live) is expected to persist state.
|
||||||
Zips that are missing will be re-downloaded.
|
Zips that are missing will be re-downloaded.
|
||||||
"""
|
"""
|
||||||
|
shutil.rmtree(os.path.join("lnbits", "upgrades"), True)
|
||||||
installed_extensions = await get_installed_extensions()
|
installed_extensions = await get_installed_extensions()
|
||||||
|
|
||||||
for ext in installed_extensions:
|
for ext in installed_extensions:
|
||||||
try:
|
try:
|
||||||
installed = check_installed_extension(ext)
|
installed = check_installed_extension(ext)
|
||||||
if not installed:
|
if not installed:
|
||||||
extension = Extension.from_installable_ext(ext)
|
await restore_installed_extension(app, ext)
|
||||||
register_ext_routes(app, extension)
|
logger.warning(f"✔️ Successfully re-installed extension: {ext.id}")
|
||||||
current_version = (await db_versions()).get(ext.id, 0)
|
|
||||||
await migrate_extension_database(extension, current_version)
|
|
||||||
except:
|
except:
|
||||||
logger.warning(f"Failed to re-install extension: {ext.id}")
|
logger.warning(f"Failed to re-install extension: {ext.id}")
|
||||||
|
|
||||||
shutil.rmtree(os.path.join("lnbits", "upgrades"), True)
|
|
||||||
|
|
||||||
|
|
||||||
def check_installed_extension(ext: InstallableExtension) -> bool:
|
def check_installed_extension(ext: InstallableExtension) -> bool:
|
||||||
zip_files = glob.glob(
|
zip_files = glob.glob(
|
||||||
|
@ -158,6 +154,19 @@ def check_installed_extension(ext: InstallableExtension) -> bool:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
async def restore_installed_extension(app: FastAPI, ext: InstallableExtension):
|
||||||
|
extension = Extension.from_installable_ext(ext)
|
||||||
|
register_ext_routes(app, extension)
|
||||||
|
|
||||||
|
current_version = (await db_versions()).get(ext.id, 0)
|
||||||
|
await migrate_extension_database(extension, current_version)
|
||||||
|
|
||||||
|
# mount routes for the new version
|
||||||
|
core_app_extra.register_new_ext_routes(extension)
|
||||||
|
if ext.module_installed:
|
||||||
|
ext.nofiy_upgrade()
|
||||||
|
|
||||||
|
|
||||||
def register_routes(app: FastAPI) -> None:
|
def register_routes(app: FastAPI) -> None:
|
||||||
"""Register FastAPI routes / LNbits extensions."""
|
"""Register FastAPI routes / LNbits extensions."""
|
||||||
app.include_router(core_app)
|
app.include_router(core_app)
|
||||||
|
|
Loading…
Add table
Reference in a new issue