From b280ab6bcdf6c9bae46a7a21b7138d46d953dd71 Mon Sep 17 00:00:00 2001 From: frosty Date: Mon, 23 Feb 2026 00:57:21 -0500 Subject: oopsies --- src/Main.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/Main.c (limited to 'src/Main.c') diff --git a/src/Main.c b/src/Main.c new file mode 100644 index 0000000..d1b2eb9 --- /dev/null +++ b/src/Main.c @@ -0,0 +1,49 @@ +#include +#include +#include +#include +#include + +#include "Config.h" +#include "Routes/Home.h" +#include "Routes/Images.h" +#include "Routes/Search.h" + +int handle_opensearch(UrlParams *params) { + (void)params; + serve_static_file_with_mime("opensearch.xml", "application/opensearchdescription+xml"); + return 0; +} + +int main() { + LIBXML_TEST_VERSION + xmlInitParser(); + + curl_global_init(CURL_GLOBAL_DEFAULT); + + Config config = {.host = "0.0.0.0", .port = 5000}; + + if (load_config("config.ini", &config) != 0) { + fprintf(stderr, "Warning: Could not load config file, using defaults\n"); + } + + set_handler("/", home_handler); + set_handler("/opensearch.xml", handle_opensearch); + set_handler("/search", results_handler); + set_handler("/images", images_handler); + + fprintf(stderr, "Starting Omnisearch on %s:%d\n", config.host, config.port); + + int result = beaker_run(config.host, config.port); + + if (result != 0) { + fprintf(stderr, "Error: Beaker server failed to start.\n"); + curl_global_cleanup(); + xmlCleanupParser(); + return EXIT_FAILURE; + } + + curl_global_cleanup(); + xmlCleanupParser(); + return EXIT_SUCCESS; +} \ No newline at end of file -- cgit v1.2.3