diff options
| -rw-r--r-- | include/globs.h | 82 | ||||
| -rw-r--r-- | include/pkgit_globals.h | 79 | ||||
| -rw-r--r-- | include/str.h (renamed from include/pkgit_string.h) | 0 | ||||
| -rw-r--r-- | src/cla_parse.c | 10 | ||||
| -rw-r--r-- | src/globs.c (renamed from src/pkgit_globals.c) | 11 | ||||
| -rw-r--r-- | src/main.c | 17 | ||||
| -rw-r--r-- | src/str.c (renamed from src/pkgit_string.c) | 14 |
7 files changed, 106 insertions, 107 deletions
diff --git a/include/globs.h b/include/globs.h new file mode 100644 index 0000000..69fee60 --- /dev/null +++ b/include/globs.h @@ -0,0 +1,82 @@ +/* + + 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 <https://www.gnu.org/licenses/>. + +*/ + +#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 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 + +#include "str.h" + +typedef struct { + str_slc name; + str_slc url; + str_slc version; + str_slc target; + str_slc src; + int is_local; +} package; + +extern int is_verbose; +extern int is_forced; +extern int config_exists; + +extern char root_config_file[20]; + +void init_vars(void); + +#endif diff --git a/include/pkgit_globals.h b/include/pkgit_globals.h deleted file mode 100644 index b1e76ed..0000000 --- a/include/pkgit_globals.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef PKGIT_GLOBALS_H -#define PKGIT_GLOBALS_H -#include "pkgit_string.h" - -typedef struct { - str_slc name; - str_slc url; - str_slc version; - str_slc target; - str_slc src; - int is_local; -} package; - -#define VERSION slc_from_cstr("1.4.0_INDEV") -#define RED slc_from_cstr("\x1b[0;31m") -#define GREEN slc_from_cstr("\x1b[0;32m") -#define YELLOW slc_from_cstr("\x1b[0;33m") -#define BLUE slc_from_cstr("\x1b[0;34m") -#define MAGENTA slc_from_cstr("\x1b[0;35m") -#define CYAN slc_from_cstr("\x1b[0;36m") -#define GRAY slc_from_cstr("\x1b[0;37m") -#define BRIGHT_RED slc_from_cstr("\x1b[0;91m") -#define BRIGHT_GREEN slc_from_cstr("\x1b[0;92m") -#define BRIGHT_YELLOW slc_from_cstr("\x1b[0;93m") -#define BRIGHT_BLUE slc_from_cstr("\x1b[0;94m") -#define BRIGHT_MAGENTA slc_from_cstr("\x1b[0;95m") -#define BRIGHT_CYAN slc_from_cstr("\x1b[0;96m") -#define BRIGHT_GRAY slc_from_cstr("\x1b[0;97m") -#define BOLD_RED slc_from_cstr("\x1b[1;31m") -#define BOLD_GREEN slc_from_cstr("\x1b[1;32m") -#define BOLD_YELLOW slc_from_cstr("\x1b[1;33m") -#define BOLD_BLUE slc_from_cstr("\x1b[1;34m") -#define BOLD_MAGENTA slc_from_cstr("\x1b[1;35m") -#define BOLD_CYAN slc_from_cstr("\x1b[1;36m") -#define BOLD_GRAY slc_from_cstr("\x1b[1;37m") -#define BOLD_WHITE slc_from_cstr("\x1b[1;38m") -#define BOLD_BRIGHT_RED slc_from_cstr("\x1b[1;91m") -#define BOLD_BRIGHT_GREEN slc_from_cstr("\x1b[1;92m") -#define BOLD_BRIGHT_YELLOW slc_from_cstr("\x1b[1;93m") -#define BOLD_BRIGHT_BLUE slc_from_cstr("\x1b[1;94m") -#define BOLD_BRIGHT_MAGENTA slc_from_cstr("\x1b[1;95m") -#define BOLD_BRIGHT_CYAN slc_from_cstr("\x1b[1;96m") -#define BOLD_BRIGHT_GRAY slc_from_cstr("\x1b[1;97m") -#define ITALIC slc_from_cstr("\x1b[3m") -#define COLOR_RESET slc_from_cstr("\x1b[0m") - -#define STR_BUFFER slc_from_cstr("") - -#define PRINT_PKGIT slc_cat( \ - slc_cat( \ - slc_cat(BOLD_YELLOW, slc_from_cstr("[")), \ - slc_cat(BOLD_MAGENTA, slc_from_cstr("pkgit")), \ - &STR_BUFFER \ - ), slc_cat( \ - slc_cat(BOLD_MAGENTA, slc_from_cstr("]")), \ - COLOR_RESET, &STR_BUFFER \ - ), &STR_BUFFER \ -) -#define PRINT_SUCCESS slc_cat( \ - slc_cat(PRINT_PKGIT, GREEN), \ - slc_cat(slc_from_cstr(" [SUCCESS]"), COLOR_RESET) \ -) -#define PRINT_SKIPPED slc_cat( \ - slc_cat(PRINT_PKGIT, BLUE), \ - slc_cat(slc_from_cstr(" [SKIPPED]"), COLOR_RESET) \ -) -#define PRINT_WARNING slc_cat( \ - slc_cat(PRINT_PKGIT, YELLOW), \ - slc_cat(slc_from_cstr(" [WARNING]"), COLOR_RESET) \ -) -#define PRINT_ERROR slc_cat( \ - slc_cat(PRINT_PKGIT, RED), \ - slc_cat(slc_from_cstr(" [ERROR]"), COLOR_RESET) \ -) - -extern int is_verbose; -extern int is_forced; - -#endif diff --git a/include/pkgit_string.h b/include/str.h index c81bcbd..c81bcbd 100644 --- a/include/pkgit_string.h +++ b/include/str.h diff --git a/src/cla_parse.c b/src/cla_parse.c index a0f3d43..c2f31fd 100644 --- a/src/cla_parse.c +++ b/src/cla_parse.c @@ -23,8 +23,8 @@ #include "cla_parse.h" -#include "pkgit_globals.h" -#include "pkgit_string.h" +#include "globs.h" +#include "str.h" //#include "declare.h" //#include "deps_resolve.h" @@ -46,7 +46,7 @@ #define NOT_ENOUGH_ARGS(arg, next) \ printf("%.*s Not enough arguments! Try: `pkgit %s [%s]`\n", \ - str_fmt(PRINT_ERROR), arg, next) + PRINT_ERROR, arg, next) void cmd_add(char **argv, int i) { if (argv[i + 1]) { @@ -120,7 +120,7 @@ void flags_cmd(int argc, char **argv, int i, package pkg) { case 'u': /*update();*/ printf("update\n"); break; case 'l': /*pkgs_list();*/ printf("list\n"); break; case 's': /*search(argv[i + 1]);*/ printf("search\n"); break; - case 'v': printf("%.*s\n", str_fmt(VERSION)); break; + case 'v': printf("%s\n", VERSION); break; case 'h': /*help();*/ printf("help\n"); break; default: break; } @@ -150,7 +150,7 @@ void cmds_parse(int argc, char **argv, package pkg) { COMMAND("--declare", "d", { /*declare();*/ }); COMMAND("--list", "l", { /*pkgs_list();*/ }); COMMAND("--search", "s", { /*search(argv[i + 1]);*/ }); - COMMAND("--version", "v", { printf("%.*s\n", str_fmt(VERSION)); }); + COMMAND("--version", "v", { printf("%s\n", VERSION); }); COMMAND("--help", "h", { /*help();*/ }); COMMAND("--check", "c", { /*deps_resolve();*/ }); } diff --git a/src/pkgit_globals.c b/src/globs.c index 094eef8..6487f21 100644 --- a/src/pkgit_globals.c +++ b/src/globs.c @@ -1,7 +1,14 @@ +#include <stdio.h> + +#include "globs.h" +#include "str.h" + int is_verbose = 1; int is_forced = 0; +char root_config_file[20] = "/etc/pkgit/init.lua"; +char root_config_dir[15] = "/etc/pkgit"; -//void init_vars(void) { +void init_vars(void) { // char *home = getenv("HOME"); // if (home) snprintf(home_dir, MAX_PATH_LEN, "%s", home); // else snprintf(home_dir, MAX_PATH_LEN, "/root"); @@ -26,4 +33,4 @@ int is_forced = 0; // install_directories[2] = strdup(get_install_dir("lib")); // install_directories[3] = strdup(get_install_dir("inc")); // install_directories[4] = strdup(get_install_dir("src")); -//} +} @@ -20,22 +20,9 @@ #include <stdio.h> #include "cla_parse.h" -#include "pkgit_string.h" -#include "pkgit_globals.h" +#include "str.h" +#include "globs.h" int main(int argc, char** argv) { - //slc_cat(BOLD_YELLOW, slc_from_cstr("[")) - //slc_cat(BOLD_MAGENTA, slc_from_cstr("pkgit")) - //slc_cat(BOLD_MAGENTA, slc_from_cstr("]")) - //COLOR_RESET - str_slc hello_world = {"", 0}; - slc_cat(slc_from_cstr("hello"), slc_from_cstr(" world"), &hello_world); - str_slc test = {"hello", 5}; - printf("%.*s\n", str_fmt(test)); - printf("%.*s%s%.*s\n", str_fmt(BOLD_YELLOW), "TEST", str_fmt(COLOR_RESET)); - printf("length: %zu\nstring: %.*s\n", hello_world.len, str_fmt(hello_world)); - str_slc hello_world_ext = {"", 0}; - slc_cat(slc_from_cstr(hello_world.data), slc_from_cstr("!!!"), &hello_world_ext); - printf("length: %zu\nstring: %.*s\n", hello_world_ext.len, str_fmt(hello_world_ext)); return 0; } diff --git a/src/pkgit_string.c b/src/str.c index 6f8a0a6..7bb424e 100644 --- a/src/pkgit_string.c +++ b/src/str.c @@ -20,9 +20,10 @@ #include <ctype.h> #include <stdio.h> +#include <stdlib.h> #include <string.h> -#include "pkgit_string.h" +#include "str.h" void slc_print(str_slc slc) { for (size_t i = 0; i < slc.len; i++) { @@ -95,13 +96,14 @@ str_slc slc_split(str_slc *slc, char delimiter) { } void slc_cat(str_slc first, str_slc second, str_slc *new_slc) { - new_slc->len = first.len + second.len + 1; - char buf[new_slc->len]; + if (new_slc->len < first.len + second.len) { + printf("fatal: slc_cat length of new slice is too small\n"); + exit(EXIT_FAILURE); + } for (size_t i = 0; i < first.len; i++) { - buf[i] = first.data[i]; + new_slc->data[i] = first.data[i]; } for (size_t i = first.len; i < new_slc->len; i++) { - buf[i] = second.data[i-first.len]; + new_slc->data[i] = second.data[i-first.len]; } - new_slc->data = buf; } |
