From 166b788d61a443a1576f8b56abdf06fea5a2178e Mon Sep 17 00:00:00 2001 From: dacctal Date: Wed, 1 Jul 2026 07:50:01 +0000 Subject: ezntek: checkpoint! --- src/globs.c | 89 +++++++++++++++++++------------------------------------------ 1 file changed, 28 insertions(+), 61 deletions(-) (limited to 'src/globs.c') diff --git a/src/globs.c b/src/globs.c index 61d3ea6..519e5f9 100644 --- a/src/globs.c +++ b/src/globs.c @@ -19,79 +19,46 @@ */ #include -#include #include "globs.h" #include "files.h" +#include "log.h" #include "lua_vars.h" #include "str.h" -int is_verbose = 1; -int is_forced = 0; +install_dirs_t inst_dirs = {0}; +cli_flags_t flags = {0}; +config_t cfg = {0}; -int is_root_config = 0; -str home_config_dir; -str home_config_file; -str home_repos_file; -str root_config_dir; -str root_config_file; -str root_repos_file; -str config_dir; -str config_file; -str repos_file; - -str prefix_dir; +void init_vars(void) { + if (file_exists("/etc/pkgit/repos.lua")) { + cfg.dir = mstr("/etc/pkgit"); + cfg.name = mstr("/etc/pkgit/repos.lua"); -str bin; -str lib; -str include; -str src; + } else { + const char *tmp = getenv("XDG_CONFIG_HOME"); + if (tmp) { + cfg.dir = str_format("%s/pkgit", tmp); + } else { + cfg.dir = str_format("%s/.config/pkgit", getenv("HOME")); + } + cfg.name = str_concat_cstr(&cfg.dir, "/init.lua"); + } + // TODO: read into cfg.content -void init_vars(void) { - home_config_dir = str_format("%s/.config/pkgit", getenv("HOME")); - home_config_file = str_format("%s/init.lua", home_config_dir.data); - home_repos_file = str_format("%s/repos.lua", home_config_dir.data); - root_config_dir = str_from_cstr("/etc/pkgit"); - root_config_file = str_format("%s/init.lua", root_config_dir.data); - root_repos_file = str_format("%s/repos.lua", root_config_dir.data); - str_copy_into(&config_dir, &home_config_dir); - if (file_exists(root_config_file.data)) str_copy_into(&config_dir, &root_config_dir); - config_file = str_format("%s/init.lua", config_dir.data); - repos_file = str_format("%s/repos.lua", config_dir.data); + cfg.repos = str_format("%.*s/repos.lua", str_fmt(&cfg.dir)); init_install_directories(); } void free_vars(void) { - str_free(&home_config_dir); - str_free(&home_config_file); - str_free(&home_repos_file); - str_free(&root_config_dir); - str_free(&root_config_file); - str_free(&root_repos_file); - str_free(&config_dir); - str_free(&config_file); - str_free(&repos_file); + str_free(&cfg.dir); + str_free(&cfg.name); + str_free(&cfg.content); + str_free(&cfg.repos); + str_free(&inst_dirs.prefix); + str_free(&inst_dirs.bin); + str_free(&inst_dirs.lib); + str_free(&inst_dirs.include); + str_free(&inst_dirs.src); } - -// old init_vars() -// -// is_root_config = file_exists(root_config); -// if (is_root_config) snprintf(config_dir, MAX_PATH_LEN, "/etc/pkgit"); -// else snprintf(config_dir, MAX_PATH_LEN, "%s/.config/pkgit", home_dir); -// -// snprintf(config_file, MAX_PATH_LEN, "%s/init.lua", config_dir); -// snprintf(repo_file, MAX_PATH_LEN, "%s/repos.lua", config_dir); -// -// config_exists = file_exists(root_config) || file_exists(home_config()); -// -// snprintf(bin, MAX_PATH_LEN, "%s/.local/bin", home_dir); -// snprintf(lib, MAX_PATH_LEN, "%s/.local/lib", home_dir); -// snprintf(inc, MAX_PATH_LEN, "%s/.local/include", home_dir); -// snprintf(src, MAX_PATH_LEN, "%s/.local/share/pkgit", home_dir); -// -// install_directories[0] = config_dir; -// install_directories[1] = strdup(get_install_dir("bin")); -// install_directories[2] = strdup(get_install_dir("lib")); -// install_directories[3] = strdup(get_install_dir("inc")); -// install_directories[4] = strdup(get_install_dir("src")); -- cgit v1.2.3