summaryrefslogtreecommitdiff
path: root/backend/decky_loader
diff options
context:
space:
mode:
Diffstat (limited to 'backend/decky_loader')
-rw-r--r--backend/decky_loader/helpers.py16
-rw-r--r--backend/decky_loader/updater.py4
2 files changed, 14 insertions, 6 deletions
diff --git a/backend/decky_loader/helpers.py b/backend/decky_loader/helpers.py
index e3770c63..0cd6518b 100644
--- a/backend/decky_loader/helpers.py
+++ b/backend/decky_loader/helpers.py
@@ -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"
diff --git a/backend/decky_loader/updater.py b/backend/decky_loader/updater.py
index f8aef429..a7234a8b 100644
--- a/backend/decky_loader/updater.py
+++ b/backend/decky_loader/updater.py
@@ -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))