aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/globs.h82
-rw-r--r--include/pkgit_globals.h79
-rw-r--r--include/str.h (renamed from include/pkgit_string.h)0
-rw-r--r--src/cla_parse.c10
-rw-r--r--src/globs.c (renamed from src/pkgit_globals.c)11
-rw-r--r--src/main.c17
-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"));
-//}
+}
diff --git a/src/main.c b/src/main.c
index eebd9ce..33f1854 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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;
}