aboutsummaryrefslogtreecommitdiff
path: root/src/fetch.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/fetch.c')
-rw-r--r--src/fetch.c27
1 files changed, 1 insertions, 26 deletions
diff --git a/src/fetch.c b/src/fetch.c
index 3792a5e..b2c74ef 100644
--- a/src/fetch.c
+++ b/src/fetch.c
@@ -18,7 +18,6 @@
*/
-//#include <git2.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
@@ -30,31 +29,11 @@
#include "globs.h"
#include "log.h"
-//bool fetch(package_t *pkg) {
-// git_libgit2_init();
-// git_clone_options clone_opts = GIT_CLONE_OPTIONS_INIT;
-// clone_opts.checkout_branch = pkg->version.data;
-// clone_opts.checkout_opts.checkout_strategy = GIT_CHECKOUT_SAFE;
-// git_repository *repo = NULL;
-// int error = git_clone(&repo, pkg->url.data, pkg->src.data, NULL);
-// if (error < 0) {
-// const git_error *e = git_error_last();
-// fprintf(stderr, "clone failed: %s\n",
-// e && e->message ? e->message : "unknown error");
-// git_libgit2_shutdown();
-// return false;
-// }
-// git_repository_free(repo);
-// git_libgit2_shutdown();
-// return true;
-//}
-
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;
}
-
pid_t pid = fork();
if (pid < 0) {
log_error("fork failed");
@@ -73,26 +52,22 @@ bool fetch(package_t *pkg) {
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);