aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordacctal <donotcontactmevia@email.invalid>2026-07-04 09:18:45 +0000
committerdacctal <donotcontactmevia@email.invalid>2026-07-04 09:18:45 +0000
commit23ac5cee1ab80c71058c6831e7275e08e10029b9 (patch)
tree387d4f453587fd3f80e1cb34982c294f81919371
parente11533e41129b7a4f52664d40546a9053a5187cd (diff)
add checkpoint!
-rw-r--r--include/add_repo.h28
-rw-r--r--include/fetch.h28
-rw-r--r--src/add_repo.c56
-rw-r--r--src/fetch.c26
-rw-r--r--src/lua_install.c3
5 files changed, 140 insertions, 1 deletions
diff --git a/include/add_repo.h b/include/add_repo.h
new file mode 100644
index 0000000..48a73fa
--- /dev/null
+++ b/include/add_repo.h
@@ -0,0 +1,28 @@
+/*
+
+ 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 <https://www.gnu.org/licenses/>.
+
+*/
+
+#ifndef PKGIT_ADD_H
+#define PKGIT_ADD_H
+
+#include "pkg.h"
+
+void add_repo(package_t *pkg);
+
+#endif
diff --git a/include/fetch.h b/include/fetch.h
new file mode 100644
index 0000000..e58067e
--- /dev/null
+++ b/include/fetch.h
@@ -0,0 +1,28 @@
+/*
+
+ 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 <https://www.gnu.org/licenses/>.
+
+*/
+
+#ifndef PKGIT_FETCH_H
+#define PKGIT_FETCH_H
+
+#include "pkg.h"
+
+void fetch(package_t *pkg);
+
+#endif
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 <https://www.gnu.org/licenses/>.
+
+*/
+
+#include <stdio.h>
+#include <string.h>
+#include <stdbool.h>
+
+#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 <https://www.gnu.org/licenses/>.
+
+*/
+
+#include <git2.h>
+
+#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 {