feat: print extensions version on install/uninstall/reinstall (#1726)
This commit is contained in:
parent
6eab3dae01
commit
80b803913f
|
@ -157,10 +157,14 @@ async def check_installed_extensions(app: FastAPI):
|
||||||
installed = check_installed_extension(ext)
|
installed = check_installed_extension(ext)
|
||||||
if not installed:
|
if not installed:
|
||||||
await restore_installed_extension(app, ext)
|
await restore_installed_extension(app, ext)
|
||||||
logger.info(f"✔️ Successfully re-installed extension: {ext.id}")
|
logger.info(
|
||||||
|
f"✔️ Successfully re-installed extension: {ext.id} ({ext.installed_version})"
|
||||||
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warning(e)
|
logger.warning(e)
|
||||||
logger.warning(f"Failed to re-install extension: {ext.id}")
|
logger.warning(
|
||||||
|
f"Failed to re-install extension: {ext.id} ({ext.installed_version})"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
async def build_all_installed_extensions_list() -> List[InstallableExtension]:
|
async def build_all_installed_extensions_list() -> List[InstallableExtension]:
|
||||||
|
|
|
@ -820,7 +820,7 @@ async def api_install_extension(
|
||||||
ext_info.clean_extension_files()
|
ext_info.clean_extension_files()
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=HTTPStatus.INTERNAL_SERVER_ERROR,
|
status_code=HTTPStatus.INTERNAL_SERVER_ERROR,
|
||||||
detail="Failed to install extension.",
|
detail=f"Failed to install extension {ext_info.id} ({ext_info.installed_version}).",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -353,8 +353,14 @@ class InstallableExtension(BaseModel):
|
||||||
return False
|
return False
|
||||||
return Path(self.ext_dir, "config.json").is_file()
|
return Path(self.ext_dir, "config.json").is_file()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def installed_version(self) -> str:
|
||||||
|
if self.installed_release:
|
||||||
|
return self.installed_release.version
|
||||||
|
return ""
|
||||||
|
|
||||||
def download_archive(self):
|
def download_archive(self):
|
||||||
logger.info(f"Downloading extension {self.name}.")
|
logger.info(f"Downloading extension {self.name} ({self.installed_version}).")
|
||||||
ext_zip_file = self.zip_path
|
ext_zip_file = self.zip_path
|
||||||
if ext_zip_file.is_file():
|
if ext_zip_file.is_file():
|
||||||
os.remove(ext_zip_file)
|
os.remove(ext_zip_file)
|
||||||
|
@ -379,7 +385,7 @@ class InstallableExtension(BaseModel):
|
||||||
)
|
)
|
||||||
|
|
||||||
def extract_archive(self):
|
def extract_archive(self):
|
||||||
logger.info(f"Extracting extension {self.name}.")
|
logger.info(f"Extracting extension {self.name} ({self.installed_version}).")
|
||||||
Path("lnbits", "upgrades").mkdir(parents=True, exist_ok=True)
|
Path("lnbits", "upgrades").mkdir(parents=True, exist_ok=True)
|
||||||
shutil.rmtree(self.ext_upgrade_dir, True)
|
shutil.rmtree(self.ext_upgrade_dir, True)
|
||||||
with zipfile.ZipFile(self.zip_path, "r") as zip_ref:
|
with zipfile.ZipFile(self.zip_path, "r") as zip_ref:
|
||||||
|
@ -414,7 +420,7 @@ class InstallableExtension(BaseModel):
|
||||||
Path(self.ext_upgrade_dir, self.id),
|
Path(self.ext_upgrade_dir, self.id),
|
||||||
Path(settings.lnbits_path, "extensions", self.id),
|
Path(settings.lnbits_path, "extensions", self.id),
|
||||||
)
|
)
|
||||||
logger.success(f"Extension {self.name} installed.")
|
logger.success(f"Extension {self.name} ({self.installed_version}) installed.")
|
||||||
|
|
||||||
def nofiy_upgrade(self) -> None:
|
def nofiy_upgrade(self) -> None:
|
||||||
"""Update the list of upgraded extensions. The middleware will perform redirects based on this"""
|
"""Update the list of upgraded extensions. The middleware will perform redirects based on this"""
|
||||||
|
|
Loading…
Reference in New Issue
Block a user