Skip to content

Commit

Permalink
feat: start xonfig web from any directory
Browse files Browse the repository at this point in the history
  • Loading branch information
jnoortheen committed Mar 19, 2024
1 parent 80940e8 commit 6c68541
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 24 deletions.
30 changes: 7 additions & 23 deletions xonsh/webconfig/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import string
import sys
import typing as tp
from argparse import ArgumentParser
from email.message import EmailMessage
from http import HTTPStatus, server
from pathlib import Path
Expand All @@ -22,6 +21,10 @@


class XonshConfigHTTPRequestHandler(server.SimpleHTTPRequestHandler):
def __init__(self, *args, **kwargs):
kwargs.setdefault("directory", os.path.dirname(__file__))
super().__init__(*args, **kwargs)

def _write_headers(self, *headers: "tuple[str, str]"):
for name, val in headers:
self.send_header(name, val)
Expand Down Expand Up @@ -121,19 +124,6 @@ def do_POST(self):
self._send(b"received post request:<br>" + post_body)


def make_parser():
p = ArgumentParser("xonfig web")
p.add_argument(
"--no-browser",
"-n",
action="store_false",
dest="browser",
default=True,
help="don't open browser",
)
return p


def bind_server_to(
port: int = 8421, handler_cls=XonshConfigHTTPRequestHandler, browser=False
):
Expand Down Expand Up @@ -171,18 +161,12 @@ def serve(browser=False):
httpd.serve_forever()


def main(args=None):
def main(browser=False):
"""standalone entry point for webconfig."""
from xonsh.main import setup

setup()

p = make_parser()
ns = p.parse_args(args=args)

webconfig_dir = os.path.dirname(__file__)
if webconfig_dir:
os.chdir(webconfig_dir)
serve(ns.browser)
serve(browser)


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion xonsh/xonfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -693,7 +693,7 @@ def _web(

from xonsh.webconfig import main

main.main(_args[1:])
main.serve(browser)


class XonfigAlias(ArgParserAlias):
Expand Down

0 comments on commit 6c68541

Please sign in to comment.