use std::{ net::{IpAddr, SocketAddr}, pin::Pin, process::Stdio, time::Instant, }; use confindent::{Confindent, Value, ValueParseError}; use http_body_util::{BodyExt, Full}; use hyper::{ HeaderMap, Request, Response, StatusCode, body::{Bytes, Incoming}, header::{self, HeaderValue}, server::conn::http1, service::Service, }; use hyper_util::rt::TokioIo; use regex_lite::Regex; use tokio::{ io::{AsyncWriteExt, BufWriter}, net::TcpListener, process::Command, runtime::Runtime, }; #[derive(Clone, Debug)] pub struct Settings { port: u16, scripts: Vec