update build process
This commit is contained in:
parent
dea773366e
commit
b28891adb5
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1 +1,2 @@
|
|||
anthracite
|
||||
src/error_pages/
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
FROM alpine as build-env
|
||||
|
||||
RUN apk add --no-cache build-base
|
||||
RUN apk add --no-cache build-base python3
|
||||
COPY ./src/ .
|
||||
RUN make build-release
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
.PHONY: format lint build build-release build-docker run debug
|
||||
|
||||
build:
|
||||
python3 ./error_gen.py
|
||||
g++ main.cpp --std=c++20 -g -o ./anthracite
|
||||
|
||||
build-release:
|
||||
|
|
75
src/error_gen.py
Normal file
75
src/error_gen.py
Normal file
|
@ -0,0 +1,75 @@
|
|||
# error_gen.py
|
||||
# Generates default html error pages for Anthracite
|
||||
|
||||
import os
|
||||
|
||||
version = "0.1.5"
|
||||
|
||||
def generate_error_page(error_code, error_title, error_description):
|
||||
html = f"""<html>
|
||||
<head><title>{error_title}</title></head>
|
||||
<body>
|
||||
<center>
|
||||
<h1>{error_code} - {error_title}</h1>
|
||||
<hr>
|
||||
<p>{error_description}</p>
|
||||
<p>Anthracite/{version}</p>
|
||||
<p><small><a href="https://github.com/nickorlow/anthracite">This is Open Source Software</small></a></p>
|
||||
</center>
|
||||
</body>
|
||||
</html>"""
|
||||
return html
|
||||
|
||||
error_codes = {
|
||||
400: "Bad Request",
|
||||
401: "Unauthorized",
|
||||
402: "Payment Required",
|
||||
403: "Forbidden",
|
||||
404: "Not Found",
|
||||
405: "Method Not Allowed",
|
||||
406: "Not Acceptable",
|
||||
407: "Proxy Authentication Required",
|
||||
408: "Request Timeout",
|
||||
409: "Conflict",
|
||||
410: "Gone",
|
||||
411: "Length Required",
|
||||
412: "Precondition Failed",
|
||||
413: "Payload Too Large",
|
||||
414: "URI Too Long",
|
||||
415: "Unsupported Media Type",
|
||||
416: "Range Not Satisfiable",
|
||||
417: "Expectation Failed",
|
||||
418: "I'm a teapot",
|
||||
421: "Misdirected Request",
|
||||
422: "Unprocessable Entity",
|
||||
423: "Locked",
|
||||
424: "Failed Dependency",
|
||||
425: "Too Early",
|
||||
426: "Upgrade Required",
|
||||
428: "Precondition Required",
|
||||
429: "Too Many Requests",
|
||||
431: "Request Header Fields Too Large",
|
||||
451: "Unavailable For Legal Reasons",
|
||||
500: "Internal Server Error",
|
||||
501: "Not Implemented",
|
||||
502: "Bad Gateway",
|
||||
503: "Service Unavailable",
|
||||
504: "Gateway Timeout",
|
||||
505: "HTTP Version Not Supported",
|
||||
506: "Variant Also Negotiates",
|
||||
507: "Insufficient Storage",
|
||||
508: "Loop Detected",
|
||||
510: "Not Extended",
|
||||
511: "Network Authentication Required"
|
||||
}
|
||||
|
||||
|
||||
error_dir = './error_pages'
|
||||
os.makedirs(error_dir, exist_ok=True)
|
||||
|
||||
for code, title in error_codes.items():
|
||||
error_description = error_codes[code]
|
||||
error_page = generate_error_page(code, title, error_description)
|
||||
file_path = os.path.join(error_dir, f"{code}.html")
|
||||
with open(file_path, "w") as file:
|
||||
file.write(error_page)
|
|
@ -1,12 +1,12 @@
|
|||
<html>
|
||||
<head><title>Not Found</title></head>
|
||||
|
||||
<body>
|
||||
<center>
|
||||
<h1>404 - Not Found</h1>
|
||||
<hr>
|
||||
<p>Anthracite/0.0.1</p>
|
||||
<p><small><a href="https://github.com/nickorlow/anthracite"><small>This is Open Source Software</small></a></p>
|
||||
<p>Not Found</p>
|
||||
<p>Anthracite/0.1.5</p>
|
||||
<p><small><a href="https://github.com/nickorlow/anthracite">This is Open Source Software</small></a></p>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
|
@ -1,12 +1,12 @@
|
|||
<html>
|
||||
<head><title>Not Found</title></head>
|
||||
|
||||
<head><title>Internal Server Error</title></head>
|
||||
<body>
|
||||
<center>
|
||||
<h1>500 - Internal Server Error</h1>
|
||||
<hr>
|
||||
<p>Anthracite/0.0.1</p>
|
||||
<p><a href="https://github.com/nickorlow/anthracite"><small>This is Open Source Software</small></a></p>
|
||||
<p>Internal Server Error</p>
|
||||
<p>Anthracite/0.1.5</p>
|
||||
<p><small><a href="https://github.com/nickorlow/anthracite">This is Open Source Software</small></a></p>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
Loading…
Reference in a new issue