mirror of
https://git.pvv.ntnu.no/Drift/pvv-nixos-config.git
synced 2026-07-18 11:01:24 +02:00
ildkule/gatus/minecraft-checker: rewrite to use python-http-handlers module
This commit is contained in:
@@ -1,29 +1,14 @@
|
|||||||
{ lib, pkgs, ... }:
|
{ lib, pkgs, ... }:
|
||||||
{
|
{
|
||||||
systemd.sockets."gatus-minecraft-checker" = {
|
services.python-http-handlers."gatus-minecraft-checker" = {
|
||||||
wantedBy = [ "sockets.target" ];
|
|
||||||
listenStreams = [ "127.0.0.1:1337" ];
|
listenStreams = [ "127.0.0.1:1337" ];
|
||||||
socketConfig = {
|
|
||||||
Accept = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services."gatus-minecraft-checker" = {
|
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = lib.getExe (pkgs.writers.writePython3Bin "gatus-minecraft-checker" {
|
|
||||||
libraries = with pkgs.python3Packages; [
|
libraries = with pkgs.python3Packages; [
|
||||||
# sdnotify
|
|
||||||
mcstatus
|
mcstatus
|
||||||
];
|
];
|
||||||
flakeIgnore = [ "E501" "E704" ];
|
handler = ''
|
||||||
} ''
|
|
||||||
import socket
|
|
||||||
import json
|
import json
|
||||||
from http.server import HTTPServer, BaseHTTPRequestHandler
|
|
||||||
|
|
||||||
from mcstatus import JavaServer
|
from mcstatus import JavaServer
|
||||||
|
|
||||||
|
|
||||||
class Handler(BaseHTTPRequestHandler):
|
class Handler(BaseHTTPRequestHandler):
|
||||||
def do_GET(self):
|
def do_GET(self):
|
||||||
try:
|
try:
|
||||||
@@ -50,29 +35,6 @@
|
|||||||
self.send_response(500)
|
self.send_response(500)
|
||||||
self.end_headers()
|
self.end_headers()
|
||||||
self.wfile.write(data)
|
self.wfile.write(data)
|
||||||
|
'';
|
||||||
|
|
||||||
class NoBindHTTPServer(HTTPServer):
|
|
||||||
def server_bind(): pass
|
|
||||||
def server_activate(): pass
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
httpd = NoBindHTTPServer(
|
|
||||||
("", 0),
|
|
||||||
Handler,
|
|
||||||
bind_and_activate=False,
|
|
||||||
)
|
|
||||||
httpd.socket = socket.fromfd(3, socket.AF_INET, socket.SOCK_STREAM)
|
|
||||||
httpd.serve_forever()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
'');
|
|
||||||
|
|
||||||
NoNewPrivileges = true;
|
|
||||||
PrivateTmp = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user