feat: add scripts for staging ValheimWebMap plugin DLL and setting WebMap configuration
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Inspect pinned-version Thunderstore ZIP, stage just the plugin DLL, no traversal."""
|
||||
import hashlib
|
||||
import sys
|
||||
import zipfile
|
||||
from pathlib import Path
|
||||
|
||||
archive, output = Path(sys.argv[1]), Path(sys.argv[2])
|
||||
with zipfile.ZipFile(archive) as z:
|
||||
names = [name for name in z.namelist() if name.replace('\\', '/').endswith('plugins/ValheimWebMap/ValheimWebMap.dll')]
|
||||
if len(names) != 1:
|
||||
raise SystemExit(f"Expected exactly one plugins/ValheimWebMap/ValheimWebMap.dll; found {len(names)}")
|
||||
info = z.getinfo(names[0])
|
||||
if info.file_size <= 0 or info.file_size > 10 * 1024 * 1024:
|
||||
raise SystemExit("Unexpected DLL size")
|
||||
data = z.read(info)
|
||||
if not data.startswith(b'MZ'):
|
||||
raise SystemExit("Invalid DLL/PE header")
|
||||
output.parent.mkdir(parents=True, exist_ok=True)
|
||||
output.write_bytes(data)
|
||||
print(hashlib.sha256(data).hexdigest())
|
||||
Reference in New Issue
Block a user