11"""Entrypoint for ``python -m sphinx_autobuild``."""
22
33import argparse
4- import os
54import shlex
65import sys
6+ from pathlib import Path
77
88import colorama
99import uvicorn
@@ -33,10 +33,9 @@ def main(argv=()):
3333
3434 args , build_args = _parse_args (list (argv ))
3535
36- src_dir = args .sourcedir
37- out_dir = args .outdir
38- if not os .path .exists (out_dir ):
39- os .makedirs (out_dir )
36+ src_dir = Path (args .sourcedir )
37+ out_dir = Path (args .outdir )
38+ out_dir .mkdir (parents = True , exist_ok = True )
4039
4140 host_name = args .host
4241 port_num = args .port or find_free_port ()
@@ -53,7 +52,7 @@ def main(argv=()):
5352 watch_dirs = [src_dir ] + args .additional_watched_dirs
5453 ignore_dirs = args .ignore + [out_dir , args .warnings_file , args .doctree_dir ]
5554 ignore_handler = IgnoreFilter (
56- [p for p in ignore_dirs if p ],
55+ [Path ( p ). as_posix () for p in ignore_dirs if p ],
5756 args .re_ignore ,
5857 )
5958 app = _create_app (watch_dirs , ignore_handler , builder , out_dir , url_host )
@@ -98,14 +97,14 @@ def _parse_args(argv):
9897 args , build_args = parser .parse_known_args (argv .copy ())
9998
10099 # Copy needed settings
101- args .sourcedir = os . path . realpath (sphinx_args .sourcedir )
102- args .outdir = os . path . realpath (sphinx_args .outputdir )
100+ args .sourcedir = Path (sphinx_args .sourcedir ). resolve ( strict = True )
101+ args .outdir = Path (sphinx_args .outputdir ). resolve ( strict = True )
103102 if sphinx_args .doctreedir :
104- args .doctree_dir = os . path . realpath (sphinx_args .doctreedir )
103+ args .doctree_dir = Path (sphinx_args .doctreedir ). resolve ( strict = True )
105104 else :
106105 args .doctree_dir = None
107106 if sphinx_args .warnfile :
108- args .warnings_file = os . path . realpath (sphinx_args .warnfile )
107+ args .warnings_file = Path (sphinx_args .warnfile ). resolve ( strict = True )
109108 else :
110109 args .warnings_file = None
111110
0 commit comments