From 23ac5cee1ab80c71058c6831e7275e08e10029b9 Mon Sep 17 00:00:00 2001 From: dacctal Date: Sat, 4 Jul 2026 09:18:45 +0000 Subject: add checkpoint! --- src/add_repo.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/add_repo.c (limited to 'src/add_repo.c') diff --git a/src/add_repo.c b/src/add_repo.c new file mode 100644 index 0000000..1c41f3b --- /dev/null +++ b/src/add_repo.c @@ -0,0 +1,56 @@ +/* + + pkgit - package it! + + Copyright (C) 2026 dacctal + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +*/ + +#include +#include +#include + +#include "add_repo.h" + +#include "files.h" +#include "globs.h" + +void add_repo(package_t *pkg) { + bool is_previous_repos = false; + char rfile_line[1024]; + char rfile_contents[8192] = {0}; + + if (file_exists(cfg.repos.data)) { + FILE *rfile = fopen(cfg.repos.data, "r"); + if (rfile) { + while (fgets(rfile_line, sizeof(rfile_line), rfile)) { + strcat(rfile_contents, rfile_line); + } + fclose(rfile); + is_previous_repos = true; + } + } + + char *previous_repos = is_previous_repos ? rfile_contents : ""; + + FILE *wfile = fopen(cfg.repos.data, "w"); + if (wfile) { + fprintf(wfile, + "%srepositories[\"%s\"] = { url = \"%s\" }\n", + previous_repos, pkg->name.data, pkg->url.data + ); + fclose(wfile); + } +} -- cgit v1.2.3