From fcfb6ac21651e286092bcc92309e89c8fa2e87fd Mon Sep 17 00:00:00 2001 From: dacctal Date: Wed, 1 Jul 2026 05:47:28 +0000 Subject: checkpoint! --- include/globs.h | 137 +++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 97 insertions(+), 40 deletions(-) (limited to 'include/globs.h') diff --git a/include/globs.h b/include/globs.h index 69fee60..f44ab85 100644 --- a/include/globs.h +++ b/include/globs.h @@ -21,53 +21,94 @@ #ifndef PKGIT_GLOBALS_H #define PKGIT_GLOBALS_H -#define VERSION "1.4.0_INDEV" -#define RED "\x1b[0;31m" -#define GREEN "\x1b[0;32m" -#define YELLOW "\x1b[0;33m" -#define BLUE "\x1b[0;34m" -#define MAGENTA "\x1b[0;35m" -#define CYAN "\x1b[0;36m" -#define GRAY "\x1b[0;37m" -#define BRIGHT_RED "\x1b[0;91m" -#define BRIGHT_GREEN "\x1b[0;92m" -#define BRIGHT_YELLOW "\x1b[0;93m" -#define BRIGHT_BLUE "\x1b[0;94m" -#define BRIGHT_MAGENTA "\x1b[0;95m" -#define BRIGHT_CYAN "\x1b[0;96m" -#define BRIGHT_GRAY "\x1b[0;97m" -#define BOLD_RED "\x1b[1;31m" -#define BOLD_GREEN "\x1b[1;32m" -#define BOLD_YELLOW "\x1b[1;33m" -#define BOLD_BLUE "\x1b[1;34m" -#define BOLD_MAGENTA "\x1b[1;35m" -#define BOLD_CYAN "\x1b[1;36m" -#define BOLD_GRAY "\x1b[1;37m" -#define BOLD_WHITE "\x1b[1;38m" -#define BOLD_BRIGHT_RED "\x1b[1;91m" -#define BOLD_BRIGHT_GREEN "\x1b[1;92m" -#define BOLD_BRIGHT_YELLOW "\x1b[1;93m" -#define BOLD_BRIGHT_BLUE "\x1b[1;94m" -#define BOLD_BRIGHT_MAGENTA "\x1b[1;95m" -#define BOLD_BRIGHT_CYAN "\x1b[1;96m" -#define BOLD_BRIGHT_GRAY "\x1b[1;97m" -#define ITALIC "\x1b[3m" -#define COLOR_RESET "\x1b[0m" - -#define PRINT_PKGIT BOLD_YELLOW "[" BOLD_MAGENTA "pkgit" BOLD_YELLOW "]" COLOR_RESET +#define VERSION "1.4.0_INDEV" +#define RED "\x1b[0;31m" +#define GREEN "\x1b[0;32m" +#define YELLOW "\x1b[0;33m" +#define BLUE "\x1b[0;34m" +#define MAGENTA "\x1b[0;35m" +#define CYAN "\x1b[0;36m" +#define GRAY "\x1b[0;37m" +#define BRIGHT_RED "\x1b[0;91m" +#define BRIGHT_GREEN "\x1b[0;92m" +#define BRIGHT_YELLOW "\x1b[0;93m" +#define BRIGHT_BLUE "\x1b[0;94m" +#define BRIGHT_MAGENTA "\x1b[0;95m" +#define BRIGHT_CYAN "\x1b[0;96m" +#define BRIGHT_GRAY "\x1b[0;97m" +#define BOLD "\x1b[1m" +#define BOLD_RED "\x1b[1;31m" +#define BOLD_GREEN "\x1b[1;32m" +#define BOLD_YELLOW "\x1b[1;33m" +#define BOLD_BLUE "\x1b[1;34m" +#define BOLD_MAGENTA "\x1b[1;35m" +#define BOLD_CYAN "\x1b[1;36m" +#define BOLD_GRAY "\x1b[1;37m" +#define BOLD_WHITE "\x1b[1;38m" +#define BOLD_BRIGHT_RED "\x1b[1;91m" +#define BOLD_BRIGHT_GREEN "\x1b[1;92m" +#define BOLD_BRIGHT_YELLOW "\x1b[1;93m" +#define BOLD_BRIGHT_BLUE "\x1b[1;94m" +#define BOLD_BRIGHT_MAGENTA "\x1b[1;95m" +#define BOLD_BRIGHT_CYAN "\x1b[1;96m" +#define BOLD_BRIGHT_GRAY "\x1b[1;97m" +#define ITALIC "\x1b[3m" +#define COLOR_RESET "\x1b[0m" + +#define eprintf(...) fprintf(stderr, __VA_ARGS__); + +#define check_alloc(ptr) \ + do { \ + if (ptr == NULL) \ + panic("allocation of `%s` failed", #ptr); \ + } while (0) + +#include +#define panic(...) \ + do { \ + eprintf(BOLD RED "panic:" COLOR_RESET " line %d, func \"%s\" in file " \ + "\"%s\": ", \ + __LINE__, __func__, __FILE_NAME__); \ + eprintf(__VA_ARGS__); \ + eprintf("\n"); \ + fflush(stderr); \ + abort(); \ + } while (0) + +#ifdef PKGIT_DEBUG +#define assert(expr) \ + do { \ + if (!(expr)) \ + panic("Assertion `%s` failed", #expr); \ + } while (0) +#else +#define assert(expr) (void)(expr) +#endif + +#ifdef unreachable +#undef unreachable +#endif +#define unreachable panic("reached unreachable code") + +#define PRINT_PKGIT \ + BOLD_YELLOW "[" BOLD_MAGENTA "pkgit" BOLD_YELLOW "]" COLOR_RESET #define PRINT_SUCCESS PRINT_PKGIT GREEN " [SUCCESS]" COLOR_RESET #define PRINT_SKIPPED PRINT_PKGIT BLUE " [SKIPPED]" COLOR_RESET #define PRINT_WARNING PRINT_PKGIT YELLOW " [WARNING]" COLOR_RESET #define PRINT_ERROR PRINT_PKGIT RED " [ERROR]" COLOR_RESET +#define MAX_REPOS 1000 +#define MAX_DIRS 100 +#define MAX_PATH_LEN 1024 + #include "str.h" typedef struct { - str_slc name; - str_slc url; - str_slc version; - str_slc target; - str_slc src; + str name; + str url; + str version; + str target; + str src; int is_local; } package; @@ -75,8 +116,24 @@ extern int is_verbose; extern int is_forced; extern int config_exists; -extern char root_config_file[20]; +extern str home_config_dir; +extern str home_config_file; +extern str home_repos_file; +extern str root_config_dir; +extern str root_config_file; +extern str root_repos_file; +extern int is_root_config; + +extern str config_dir; +extern str config_file; +extern str repos_file; + +extern str bin; +extern str lib; +extern str include; +extern str src; void init_vars(void); +void free_vars(void); #endif -- cgit v1.2.3