refactor(backend): get version from package metadata

This commit is contained in:
K900
2023-11-14 10:21:49 +03:00
committed by AAGaming
parent 31a6202da9
commit 41c62c3a34
4 changed files with 27 additions and 7 deletions
+14 -2
View File
@@ -5,6 +5,7 @@ import os
import subprocess
from hashlib import sha256
from io import BytesIO
import importlib.metadata
import certifi
from aiohttp.web import Request, Response, middleware
@@ -13,6 +14,7 @@ from aiohttp import ClientSession
from .localplatform import localplatform
from .customtypes import UserType
from logging import getLogger
from packaging.version import Version
REMOTE_DEBUGGER_UNIT = "steam-web-debug-portforward.service"
@@ -49,8 +51,18 @@ def mkdir_as_user(path: str):
# Fetches the version of loader
def get_loader_version() -> str:
try:
with open(os.path.join(os.getcwd(), ".loader.version"), "r", encoding="utf-8") as version_file:
return version_file.readline().strip()
# Normalize Python-style version to conform to Decky style
v = Version(importlib.metadata.version("decky_loader"))
version_str = f'v{v.major}.{v.minor}.{v.micro}'
if v.pre:
version_str += f'-pre{v.pre[1]}'
if v.post:
version_str += f'-post{v.post}'
return version_str
except Exception as e:
logger.warn(f"Failed to execute get_loader_version(): {str(e)}")
return "unknown"
-4
View File
@@ -158,7 +158,6 @@ class Updater:
logger.error("Unable to update as remoteVer is missing")
return
version = self.remoteVer["tag_name"]
download_url = None
download_filename = "PluginLoader" if ON_LINUX else "PluginLoader.exe"
download_temp_filename = download_filename + ".new"
@@ -217,9 +216,6 @@ class Updater:
self.context.loop.create_task(tab.evaluate_js(f"window.DeckyUpdater.updateProgress({new_progress})", False, False, False))
progress = new_progress
with open(path.join(getcwd(), ".loader.version"), "w", encoding="utf-8") as out:
out.write(version)
if ON_LINUX:
remove(path.join(getcwd(), download_filename))
shutil.move(path.join(getcwd(), download_temp_filename), path.join(getcwd(), download_filename))