From fd0856580fb9fd6a6a0385d1fe0fb86d3046eadb Mon Sep 17 00:00:00 2001 From: nc5432 Date: Wed, 28 May 2025 19:48:23 -0400 Subject: [PATCH] Initial Commit --- .gitignore | 15 +++++++++++++ .secrets | 0 README.md | 2 ++ ServerController.c | 53 +++++++++++++++++++++++++++++++++++++++++++++ config.cfg | 3 +++ controller | Bin 0 -> 16584 bytes makefile | 5 +++++ 7 files changed, 78 insertions(+) create mode 100644 .gitignore create mode 100644 .secrets create mode 100644 README.md create mode 100644 ServerController.c create mode 100644 config.cfg create mode 100755 controller create mode 100644 makefile diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..87bef35 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +*.code-workspace \ No newline at end of file diff --git a/.secrets b/.secrets new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md new file mode 100644 index 0000000..d62e61f --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# Server Controller +This project will primarily be a web API for my main website, allowing it to preview the resource utilization of my server, but it will also function as an admin console for me to manage my self-hosted services from. All services will be able to be launched, shutdown, and monitored through it. \ No newline at end of file diff --git a/ServerController.c b/ServerController.c new file mode 100644 index 0000000..8fb808b --- /dev/null +++ b/ServerController.c @@ -0,0 +1,53 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define CONFIG "config.cfg" +#define SECRETS ".secrets" + +const int PORT; + +void sigintHandler(int signal){ + printf("Handled sigint\n"); + exit(0); +} + +void error(char *msg){ + write(0, msg, strlen(msg)); + exit(1); +} + +void readConfig(){ + FILE *file = fopen("config.cfg", "r"); + char buf[1024]; + while (fgets(buf, 1024, file) != NULL){ + printf("Line: \n%s\n", buf); + char *newbuf = calloc(1024, 1); + for (int i = 0; i < 1024; i++){ + if (buf[i] == '#') break; + else newbuf[i] = buf[i]; + } + printf("Newbuf: %s\n", newbuf); + char buf1[512]; + char buf2[512]; + if (sscanf(newbuf, "%s %s", buf1, buf2) == 2){ + printf("Values: %s %s\n", buf1, buf2); + } + free(newbuf); + } +} + +int main(){ + signal(SIGINT, sigintHandler); + readConfig(); + + return 0; +} diff --git a/config.cfg b/config.cfg new file mode 100644 index 0000000..e46ef44 --- /dev/null +++ b/config.cfg @@ -0,0 +1,3 @@ +port 8888 +# Minecraft is a cool game yep +program minecraft # still cool \ No newline at end of file diff --git a/controller b/controller new file mode 100755 index 0000000000000000000000000000000000000000..bc497719e334e16859171c546409b2de0d720e73 GIT binary patch literal 16584 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 literal 0 HcmV?d00001 diff --git a/makefile b/makefile new file mode 100644 index 0000000..a3fbddb --- /dev/null +++ b/makefile @@ -0,0 +1,5 @@ +controller: + gcc -Wall ServerController.c -o controller -lmicrohttpd -lyaml + +clean: + rm controller \ No newline at end of file