#!/usr/bin/env python3
from pathlib import Path
from datetime import datetime
p=Path('/srv/apps/sotlab-users/sotlab_users_app.py')
s=p.read_text()
bak=p.with_name(p.name + '.bak.public-assets.' + datetime.now().strftime('%Y%m%d%H%M%S'))
bak.write_text(s)
old = """        service_key, service_label, root = svc
        path = urlparse(self.path).path
        if path == '/login':
"""
new = """        service_key, service_label, root = svc
        path = urlparse(self.path).path
        if path.startswith('/assets/'):
            full, ctype = safe_static('/srv/www/webpi', path)
            if full:
                data = full.read_bytes()
                self.send_response(200)
                self.send_header('Content-Type', ctype)
                self.send_header('Content-Length', str(len(data)))
                self.send_header('Cache-Control', 'public, max-age=3600')
                self.end_headers()
                self.wfile.write(data)
                return True
        if path == '/login':
"""
if old not in s:
    raise SystemExit('asset insertion point not found')
p.write_text(s.replace(old,new))
print(f'backup={bak}')
