Files
2026-09-03 08:38:17 +08:00

22 lines
1.1 KiB
Python

import json
import sys
from pathlib import Path
stage = Path('/www/server/xingyu-im/releases/avatars-20260831-180014')
backup = Path('/www/backup/xingyu-avatars-20260831-180014')
sys.path.insert(0, str(stage))
import baota_publish_avatars as release
result = json.loads((backup / 'result.json').read_text())
assert release.digest(release.BT/'xingyu-api') == result['backendSha256']
assert release.running(result['backendSha256']) == result['runningPids']
assert str((release.WEB/'app').resolve()) == result['h5']
assert str((release.WEB/'admin').resolve()) == result['adminUnchanged']
assert backup.stat().st_mode & 0o777 == 0o700
assert (backup/'im.sql.gz').stat().st_mode & 0o777 == 0o600
conn, _ = release.database(release.env_values())
try:
assert release.marker(conn) == result['before']
result['verificationCounts'] = {table:release.query(conn,'SELECT COUNT(*) FROM '+table)[0][0] for table in ['users','user_profiles','media_assets','admin_users','im_messages','schema_migrations']}
result['verifiedRunningBinary'] = True
print(json.dumps(result))
finally: conn.close()