summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorJesper Jensen <jesper@jnsn.dev>2026-02-19 21:30:45 +0100
committerJesper Jensen <jesper@jnsn.dev>2026-02-19 21:46:21 +0100
commitf2ff8883b298e23119729b75f5b908abeddde095 (patch)
tree325e10c5ae079366db4fb70e9bef1140f50f9baa /src/main.c
parentb0e992e99bf0f6bcb3602f6f4fd4874cc510cfaa (diff)
Prepare for server deployment
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/main.c b/src/main.c
index 2cd5ceb..e5d872d 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1,7 +1,15 @@
#include "web.h"
+#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
+
+static volatile sig_atomic_t shutdown_requested = 0;
+
+static void signal_shutdown(int sig) {
+ shutdown_requested = 1;
+}
int main(int argc, char ** argv) {
if (argc != 2) {
@@ -17,15 +25,27 @@ int main(int argc, char ** argv) {
return 1;
}
+ const char *local = getenv("SQLITE_PATH");
+ if(local == NULL) {
+ local = "/var/lib/borgflag/data.db";
+ }
+
struct App app = {
- .dbname = "borgflag.db"
+ .dbname = local,
};
struct Server server;
server.app = &app;
+ signal(SIGTERM, signal_shutdown);
+ signal(SIGINT, signal_shutdown);
+
prepare_database(&app);
web_begin(&server, atoi(argv[1]), admin_user, admin_pass);
- getchar();
+
+ while (!shutdown_requested) {
+ pause();
+ }
+
web_join(&server);
}