Add a --listen option to the python script

which will start a simple python http server to serve the generated files
This commit is contained in:
Ashik K 2023-04-09 11:45:54 +02:00
parent 43b37e3815
commit 3bd3fb7b5d
1 changed files with 26 additions and 2 deletions

View File

@ -3,11 +3,23 @@
# directory that was passed as a command line argument
import sys
import os
from pathlib import Path
# check if the user supplied the correct number of command line arguments
if len(sys.argv) != 2:
print("Usage: python index.py htmlfilesdirectory")
arglen = len(sys.argv)
if arglen !=2 and arglen != 4:
print("Usage: python index.py htmlfilesdirectory [--listen] [port]")
sys.exit(1)
listen = False
port = "8000"
if arglen == 4:
if sys.argv[2] == "--listen":
listen = True
port = sys.argv[3]
else:
print("Usage: python index.py htmlfilesdirectory [--listen] [port]")
sys.exit(1)
# set the directory from the command line argument
@ -36,3 +48,15 @@ for file in sorted(os.listdir(dir)):
#write a </html> tag to the file
outfile.write("</html>")
outfile.close
# wait 1 second
import time
time.sleep(1)
fullpath = os.path.abspath(dir)
if listen:
# run a simple python http server to serve the files using SimpleHTTPServer
# the server will serve files from the directory that was passed as a command line argument
# the server will run in the background
import subprocess
subprocess.Popen(["python3", "-m", "http.server", port, "--directory", fullpath], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)