Compare commits
No commits in common. "5555808095254a7c00c84f25af51d454e07a7a86" and "7972becddd4fc12a3102cc71b666b20ba00cd562" have entirely different histories.
5555808095
...
7972becddd
@ -34,12 +34,3 @@ logo = "/logo.png"
|
||||
## Language specifier, used in RSS feed.
|
||||
##
|
||||
language = "en"
|
||||
|
||||
## Port that is used to listed to remote git push signals.
|
||||
##
|
||||
webhook_port = 14032
|
||||
|
||||
## Something that only git hosting and your server should know.
|
||||
## See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization
|
||||
##
|
||||
webhook_auth = "Basic you-secure-credentials"
|
||||
|
@ -1,3 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
python3 -m http.server --directory ./html/ & python3 ./tools/git_webhook.py
|
@ -1,56 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from http.client import parse_headers
|
||||
from http.server import BaseHTTPRequestHandler
|
||||
from http.server import HTTPServer
|
||||
|
||||
import subprocess
|
||||
|
||||
import config
|
||||
|
||||
## Simple way to automatically pull and recompile on a remote server.
|
||||
## Run this from the root directory.
|
||||
##
|
||||
## Currently supports:
|
||||
## - Gitea (Via GET method).
|
||||
##
|
||||
|
||||
|
||||
class HttpHandler(BaseHTTPRequestHandler):
|
||||
def do_GET(self):
|
||||
got_gitea_push_event = False
|
||||
got_auth = False
|
||||
|
||||
for header in self.headers:
|
||||
match [header, self.headers[header]]:
|
||||
case ["X-Gitea-Event", "push"]:
|
||||
got_gitea_push_event = True
|
||||
|
||||
case ["Authorization", config.webhook_auth]:
|
||||
got_auth = True
|
||||
|
||||
|
||||
if not got_gitea_push_event or not got_auth:
|
||||
self.send_response(400)
|
||||
return
|
||||
|
||||
# todo: This way of doing it blocks both parties. Not ideal.
|
||||
self.send_response(200)
|
||||
|
||||
subprocess.run(["git", "pull"])
|
||||
subprocess.run(["./compile.sh"])
|
||||
|
||||
print("Pulled and recompiled.")
|
||||
|
||||
|
||||
def run(server_class=HTTPServer, handler_class=HttpHandler):
|
||||
server_address = ('', config.webhook_port)
|
||||
httpd = server_class(server_address, handler_class)
|
||||
try:
|
||||
httpd.serve_forever()
|
||||
except KeyboardInterrupt:
|
||||
httpd.server_close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run()
|
Loading…
Reference in New Issue
Block a user