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 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/fetch.c | 26 ++++++++++++++++++++++++++ src/lua_install.c | 3 ++- 3 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 src/add_repo.c create mode 100644 src/fetch.c (limited to 'src') 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); + } +} diff --git a/src/fetch.c b/src/fetch.c new file mode 100644 index 0000000..c6cefe5 --- /dev/null +++ b/src/fetch.c @@ -0,0 +1,26 @@ +/* + + 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 "fetch.h" + +bool fetch(package_t *pkg) { +} diff --git a/src/lua_install.c b/src/lua_install.c index dc09c3e..1c240d4 100644 --- a/src/lua_install.c +++ b/src/lua_install.c @@ -23,6 +23,7 @@ #include "pkgit_lua.h" +#include "add_repo.h" #include "build.h" #include "files.h" #include "globs.h" @@ -169,7 +170,7 @@ void pkg_install(package_t *pkg) { if (!repo_exists) { log_info("adding " GREEN "%.*s" COLOR_RESET , &pkg->name); if (pkg->url.len > 0) { - add_repo(pkg->url, pkg->name); + add_repo(pkg); log_info("added " GREEN "%.*s" COLOR_RESET , &pkg->name); } } else { -- cgit v1.2.3