Files

17 lines
1.3 KiB
Python

import pathlib,hashlib,shutil,subprocess,time,urllib.request,json,datetime
base=pathlib.Path('/www/dk_project/dk_app/trilium');src=pathlib.Path('/tmp/trilium-korean-phase9-fix');h=lambda p:hashlib.sha256(p.read_bytes()).hexdigest()
assert h(base/'patched/main.cjs')==h(src/'before.cjs')
backup=base/'backups'/('before-api-swagger-fix-'+datetime.datetime.now().strftime('%Y%m%d-%H%M%S'));backup.mkdir(mode=0o700);shutil.copy2(base/'patched/main.cjs',backup/'main.cjs')
shutil.copytree(src/'swagger',base/'i18n_ko/doc_notes/en/api-ko/swagger',dirs_exist_ok=False)
(base/'i18n_ko/doc_notes/en/api-ko/swagger').chmod(0o755)
for p in (base/'i18n_ko/doc_notes/en/api-ko/swagger').iterdir():p.chmod(0o644)
(base/'patched/main.cjs').write_bytes((src/'main.cjs').read_bytes());subprocess.run(['docker','restart','trilium'],check=True)
for i in range(40):
try:
with urllib.request.urlopen('http://127.0.0.1:18082/etapi/docs/swagger-ui-bundle.js',timeout=3) as r:assert hashlib.sha256(r.read()).hexdigest()==h(src/'swagger/swagger-ui-bundle.js')
break
except Exception:
if i==39:raise
time.sleep(1)
result={'status':'verified','backup':str(backup),'swaggerVersion':'5.21.0','mainSha256':h(base/'patched/main.cjs')};(base/'i18n_ko/phase9-swagger-result.json').write_text(json.dumps(result));print(json.dumps(result))