32 lines
932 B
Python
32 lines
932 B
Python
import os
|
|
import sys
|
|
from http.server import HTTPServer as S
|
|
from http.server import SimpleHTTPRequestHandler as H
|
|
|
|
|
|
class C(H):
|
|
def do_GET(self):
|
|
p = self.path
|
|
if p.endswith("/"):
|
|
base_path = p.rstrip("/")
|
|
html_file = base_path + ".html"
|
|
if os.path.exists(os.path.join(os.getcwd(), html_file.lstrip("/"))):
|
|
p = html_file
|
|
else:
|
|
p += "index.html"
|
|
elif "." not in p.split("/")[-1]:
|
|
r = os.path.join(os.getcwd(), p.lstrip("/"))
|
|
if os.path.exists(r + ".html"):
|
|
p += ".html"
|
|
elif os.path.isdir(r):
|
|
p += "/index.html"
|
|
self.path = p
|
|
return H.do_GET(self)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
d = sys.argv[1] if len(sys.argv) > 1 else "."
|
|
p = int(sys.argv[2]) if len(sys.argv) > 2 else 8000
|
|
os.chdir(d)
|
|
S(("0.0.0.0", p), C).serve_forever()
|