Source code for sirepo.pkcli.static_files
# -*- coding: utf-8 -*-
"""generate static files from package_data
:copyright: Copyright (c) 2023 RadiaSoft LLC. All Rights Reserved.
:license: http://www.apache.org/licenses/LICENSE-2.0.html
"""
from pykern.pkcollections import PKDict
from pykern.pkdebug import pkdc, pkdlog, pkdp
import pykern.pkio
import sirepo.const
import sirepo.quest
import sirepo.resource
import re
[docs]
def gen(target_dir):
"""Generate static files into `target_dir`
Args:
target_dir (str): directory must exist or be creatable
"""
_Gen(target_dir)
class _Gen(PKDict):
def __init__(self, target_dir):
self.tgt = pykern.pkio.py_path(target_dir)
for r, s in sirepo.resource.static_files():
self._copy(r, s)
with sirepo.quest.start(in_pkcli=True) as qcall:
for k, v in PKDict(
robotsTxt="robots.txt",
securityTxt="security.txt",
).items():
pykern.pkio.write_text(
self.tgt.join("static").join(v),
qcall.call_api_sync(k).content_as_str(),
)
def _copy(self, rel, src):
t = self.tgt.join(rel)
pykern.pkio.mkdir_parent_only(t)
src.copy(t, stat=True)