from pathlib import Path
import subprocess
import sys

root=Path(sys.argv[1])
for side,label,sha,summary in [
 ('base','BEFORE','d290c1f1b6','Write requests approval; approve once to reach the shell request.'),
 ('head','AFTER','b6eaa87914','Write proceeds automatically; shell still requests approval.')]:
 header=f'{label} {sha} | Web / Linux / Chrome | 1280x800 / dark | Pi / stored Auto'
 subtitle='Runtime model redacted. '+summary
 output=root/('before.mp4' if side=='base' else 'after.mp4')
 vf=("scale=1280:800,pad=1280:856:0:56:color=0x171717,"
     f"drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf:text='{header}':x=14:y=8:fontsize=16:fontcolor=white,"
     f"drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf:text='{subtitle}':x=14:y=31:fontsize=14:fontcolor=white")
 if not output.exists():
  subprocess.run(['ffmpeg','-y','-i',str(root/f'{side}-raw.mp4'),'-vf',vf,'-an','-c:v','libx264','-preset','fast','-crf','20',str(output)],check=True,stdout=subprocess.DEVNULL,stderr=(root/f'{side}-render.log').open('w'))
 subprocess.run(['convert',str(root/f'{side}-composer.png'),'-resize','1280x800','-background','#171717','-gravity','north','-splice','0x56','-font','DejaVu-Sans','-fill','white','-pointsize','16','-gravity','northwest','-annotate','+14+8',header,'-pointsize','14','-annotate','+14+31','Runtime model redacted. Fresh Pi draft uses the Auto environment default.',str(root/f'{side}-label.png')],check=True)
