From ea6745dd7ad75c85d0ea4471e9f3357532fb0eb0 Mon Sep 17 00:00:00 2001 From: dacctal Date: Sun, 7 Jun 2026 05:58:15 +0000 Subject: tiny fixes & .editorconfig (thx indium) --- src/create_pkg.c | 103 +++++++++++++++++++++++++++---------------------------- 1 file changed, 51 insertions(+), 52 deletions(-) (limited to 'src/create_pkg.c') diff --git a/src/create_pkg.c b/src/create_pkg.c index 056a3ad..36e9d10 100644 --- a/src/create_pkg.c +++ b/src/create_pkg.c @@ -9,66 +9,65 @@ #include "vars.h" Pkg create_pkg(const char *arg, const char *target) { - Pkg pkg = {0}; - pkg.target = target; - pkg.ver = "HEAD"; - pkg.is_local = false; + Pkg pkg = {0}; + pkg.target = target; + pkg.ver = "HEAD"; + pkg.is_local = false; - cache_repos(); - for (int i = 0; i < cached_repos_count; i++) { - if (strcmp(cached_repos[i].source_key, arg) == 0) { - pkg.ver = cached_repos[i].version; - } + for (int i = 0; i < cached_repos_count; i++) { + if (strcmp(cached_repos[i].source_key, arg) == 0) { + pkg.ver = cached_repos[i].version; } + } - char* argver = strchr(arg, '@'); - char* new_arg = strdup(arg); - if (argver) { - argver += 1; - pkg.ver = argver; - int char_location = 0; - while (arg[char_location] != '@') { char_location++; } - new_arg[char_location] = '\0'; - } + char *new_arg = strdup(arg); + if (!new_arg) exit(EXIT_FAILURE); + char *argver = strchr(new_arg, '@'); + if (argver) { + pkg.ver = argver + 1; + *argver = '\0'; + } - init_lua_state(); - cache_repos(); + bool is_in_repos = false; + for (size_t i = 0; i < cached_repos_count; i++) { + if (strcmp(new_arg, cached_repos[i].source_key) == 0) { + is_in_repos = true; + break; + } + } - bool is_in_repos = false; + if (strncmp(new_arg, "http", 4) == 0) { + pkg.url = strdup(new_arg); + pkg.name = name_from_url(new_arg); + } else if (strcmp(new_arg, ".") == 0) { + pkg.url = ""; + getcwd(pkg.src, MAX_PATH_LEN); + pkg.name = name_from_url(pkg.url); + pkg.is_local = true; + } else if (is_in_repos) { for (size_t i = 0; i < cached_repos_count; i++) { - if (strcmp(new_arg, cached_repos[i].source_key) == 0) { - is_in_repos = true; - break; - } + if (strcmp(new_arg, cached_repos[i].source_key) == 0) { + pkg.url = strdup(cached_repos[i].source_value); + break; + } } + pkg.name = strdup(new_arg); + } else { + printf("%s'%s' is not a valid package\n", print_error, new_arg); + exit(EXIT_FAILURE); + } - if (strncmp(new_arg, "http", 4) == 0) { - pkg.url = strdup(new_arg); - pkg.name = name_from_url(new_arg); - } else if (strcmp(new_arg, ".") == 0) { - pkg.url = ""; - getcwd(pkg.src, MAX_PATH_LEN); - pkg.name = name_from_url(pkg.src); - pkg.is_local = true; - } else if (is_in_repos) { - for (size_t i = 0; i < cached_repos_count; i++) { - if (strcmp(new_arg, cached_repos[i].source_key) == 0) { - pkg.url = strdup(cached_repos[i].source_value); - break; - } - } - pkg.name = strdup(new_arg); - } else { - printf("%s'%s' is not a valid package\n", print_error, new_arg); - exit(EXIT_FAILURE); - } + if (strlen(pkg.name) > 4 && strncmp(pkg.name + strlen(pkg.name) - 4, ".git", 4) == 0) { + pkg.name[strlen(pkg.name) - 4] = '\0'; + } - cache_install_directories(); - if (!pkg.is_local) { - char src_dir[MAX_PATH_LEN]; - snprintf(src_dir, sizeof(src_dir), "%s/%s/%s", get_install_dir("src"), pkg.name, pkg.ver); - snprintf(pkg.src, MAX_PATH_LEN, "%s", src_dir); - } + cache_install_directories(); + if (!pkg.is_local) { + char src_dir[MAX_PATH_LEN]; + snprintf(src_dir, sizeof(src_dir), "%s/%s/%s", get_install_dir("src"), + pkg.name, pkg.ver); + snprintf(pkg.src, MAX_PATH_LEN, "%s", src_dir); + } - return pkg; + return pkg; } \ No newline at end of file -- cgit v1.2.3