show version in app

This commit is contained in:
rambros 2026-03-19 11:21:04 +05:30
parent d37441dc4b
commit 36a9228ad8
3 changed files with 31 additions and 1 deletions

View file

@ -37,8 +37,14 @@ echo "Cleaning previous build artifacts..."
rm -rf build/ dist/
echo "Starting PyInstaller build..."
GIT_VERSION=$(git describe --tags --abbrev=0 2>/dev/null || echo "Unknown")
echo "__version__ = \"$GIT_VERSION\"" > src/core/_baked_version.py
pyinstaller --clean disco-reaper.spec
echo "Cleaning up baked version file..."
rm -f src/core/_baked_version.py
echo "Generating Launch-Reaper.sh launcher..."
cat << 'EOF' > dist/Launch-Reaper.sh
#!/bin/bash

View file

@ -67,3 +67,25 @@ def resolve_discord_links(content: str, state: MigrationState, platform: str, ta
if result != content:
logger.debug(f"resolve_discord_links: Content resolved to (len {len(result)}): {result[:100]!r}")
return result
import subprocess
def get_app_version() -> str:
"""Gets the dynamic app version from baked file or git."""
try:
from src.core._baked_version import __version__
return f"Reaper-{__version__}"
except ImportError:
pass
try:
version = subprocess.check_output(
["git", "describe", "--tags", "--always"],
stderr=subprocess.DEVNULL,
universal_newlines=True
).strip()
if not version:
return "Reaper-Unknown"
return f"Reaper-{version}"
except Exception:
return "Reaper-Unknown-git"

View file

@ -17,6 +17,7 @@ from src.core.configuration import (
get_available_configs, create_new_config, load_config, save_config,
)
from src.ui.widgets import RamDisplay, Footnote
from src.core.utils import get_app_version
# ──────────────────────────────────────────────────────────────────────────────
@ -94,7 +95,7 @@ class ConfigSelectionScreen(Screen):
def compose(self) -> ComposeResult:
yield Header(show_clock=True)
with Container(id="config_sel_container"):
yield Label("Disco Reaper — Select Configuration", id="config_sel_title")
yield Label(f"{get_app_version()} — Select Configuration", id="config_sel_title")
with VerticalScroll(id="config_list_container"):
yield ListView(id="config_list")
with Horizontal(id="config_sel_actions"):
@ -476,6 +477,7 @@ class ConfigScreen(Screen):
# ──────────────────────────────────────────────────────────────────────────────
class ReaperApp(App):
TITLE = get_app_version()
SCREENS = {
"config_selection": ConfigSelectionScreen,
}