commit 37d4193928d843587de5d9b5246702b13c24d789
parent 725ff78d5097b3024431a2d5601a04236661c016
Author: Hunter
Date:   Fri, 20 Mar 2026 23:02:34 -0400

generate_manifests.py: auto-increment cache version

Diffstat:
Mgenerate_manifests.py | 30+++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/generate_manifests.py b/generate_manifests.py @@ -94,6 +94,33 @@ def get_background_color(): return "#080a0c" +def _next_cache_name(app_name, manifest_path): + """Determine the next cache name by incrementing the version in an existing manifest. + + If manifest.json doesn't exist or has no versioned cache_name, returns "{app_name}-v1". + If it already has e.g. "heaven-v1", returns "heaven-v1.1". + If it already has e.g. "heaven-v1.3", returns "heaven-v1.4". + """ + if manifest_path.exists(): + try: + with open(manifest_path, 'r', encoding='utf-8') as f: + existing = json.load(f) + old_cache = existing.get("cache_name", "") + # Match pattern like "appname-v1" or "appname-v1.3" + match = re.match(r'^(.+)-v(\d+)(?:\.(\d+))?$', old_cache) + if match: + prefix = match.group(1) + major = int(match.group(2)) + minor = int(match.group(3)) if match.group(3) is not None else 0 + # If app was renamed, start fresh with new name + if prefix != app_name: + return f"{app_name}-v1" + return f"{app_name}-v{major}.{minor + 1}" + except (json.JSONDecodeError, KeyError): + pass + return f"{app_name}-v1" + + def generate_pwa_manifests(app_name=None, base_path=None): """Generate PWA manifest files based on tracks.json @@ -107,10 +134,11 @@ def generate_pwa_manifests(app_name=None, base_path=None): # Derived values short_name = app_name - cache_name = app_name + cache_name = _next_cache_name(app_name, SCRIPT_DIR / "manifest.json") app_description = f"{app_name}" print("Generating PWA manifests...") + print(f" Cache name: {cache_name}") # Load tracks.json if not TRACKS_JSON.exists():