From 184bd50e2ea12b4bf40f4ae1b0d685f0bfa1c995 Mon Sep 17 00:00:00 2001 From: dacctal Date: Tue, 21 Jul 2026 21:32:27 +0000 Subject: started 2.0 refactor. Co-authored-by: ezntek --- src/fetch.c | 95 ------------------------------------------------------------- 1 file changed, 95 deletions(-) delete mode 100644 src/fetch.c (limited to 'src/fetch.c') diff --git a/src/fetch.c b/src/fetch.c deleted file mode 100644 index 2666f78..0000000 --- a/src/fetch.c +++ /dev/null @@ -1,95 +0,0 @@ -/* - - 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 "fetch.h" -#include "files.h" -#include "globs.h" -#include "log.h" -#include "str.h" - -bool fetch(package_t *pkg) { - if (pkg->url.data == NULL || pkg->src.data == NULL) { - if (flags.verbose) - log_warn("invalid pkg: url or src is NULL"); - return false; - } - - str s = str_dupe(&pkg->src); - s.len -= pkg->version.len + 1; - s.data[s.len] = 0; - - if (is_directory(s.data) && flags.force) { - if (remove_tree(s.data)) { - log_error("could not remove %.*s", str_fmt(&s)); - return false; - } - } - - str_free(&s); - - pid_t pid = fork(); - if (pid < 0) { - log_error("fork failed"); - return false; - } - - if (pid == 0) { - if (!flags.verbose) { - int nullfd = open("/dev/null", O_WRONLY); - if (nullfd >= 0) { - dup2(nullfd, STDOUT_FILENO); - dup2(nullfd, STDERR_FILENO); - close(nullfd); - } - } - - const char *argv[12]; - int i = 0; - argv[i++] = "git"; - argv[i++] = "-c"; - argv[i++] = "advice.detachedHead=false"; - argv[i++] = "clone"; - if (pkg->version.data != NULL && - !str_equal_cstr(&pkg->version, "HEAD")) { - argv[i++] = "--branch"; - argv[i++] = pkg->version.data; - } - - argv[i++] = "--recursive"; - argv[i++] = pkg->url.data; - argv[i++] = pkg->src.data; - argv[i] = NULL; - execvp("git", (char *const *)argv); - _exit(127); - } - int status; - waitpid(pid, &status, 0); - - bool result = (WEXITSTATUS(status) == 0); - if (!result) { - log_error("git clone failed"); - } - - return result; -} -- cgit v1.2.3