Source code for mishmash.commands.web

from ..web import MISHMASH_WEB

if MISHMASH_WEB:
    import tempfile
    from pathlib import Path
    from ..core import Command
    from pyramid.scripts.pserve import PServeCommand

[docs] @Command.register class Web(Command): NAME = "web" HELP = "MishMash web interface." def _initArgParser(self, parser): parser.add_argument("-p", "--port", type=int, default=None) def _run(self): if self.args.port: self.config["server:main"]["port"] = str(self.args.port) # pserve wants a file to open, so use the composed config. with tempfile.NamedTemporaryFile(mode="w", suffix=".ini", delete=False) as config_file: self.config.write(config_file) config_file.flush() pserve = PServeCommand(["mishmash", config_file.name]) try: return pserve.run() finally: tmp_cfg = Path(config_file.name) if tmp_cfg.exists(): # Must clean only only once and multiple web workers are spawned tmp_cfg.unlink()