diff options
| author | dacctal <donotcontactmevia@email.invalid> | 2026-07-02 03:54:29 +0000 |
|---|---|---|
| committer | dacctal <donotcontactmevia@email.invalid> | 2026-07-02 03:54:29 +0000 |
| commit | 2fe0443d7073e59b1e4d75f49f0a5a417678f4cd (patch) | |
| tree | 24a269f1fa532eacea4380d03882abe145dc297d /src | |
| parent | fe3caeefac7a2081f5c9db90bf5c821624a71082 (diff) | |
ezntek: checkpoint!
Diffstat (limited to 'src')
| -rw-r--r-- | src/cla_parse.c | 76 | ||||
| -rw-r--r-- | src/globs.c | 1 | ||||
| -rw-r--r-- | src/help.c | 9 | ||||
| -rw-r--r-- | src/lua_globs.c | 4 | ||||
| -rw-r--r-- | src/main.c | 4 | ||||
| -rw-r--r-- | src/pkg/.clangd | 4 | ||||
| -rw-r--r-- | src/pkg_create.c (renamed from src/pkg/create.c) | 5 | ||||
| -rw-r--r-- | src/pkg_free.c | 9 | ||||
| -rw-r--r-- | src/str.c | 25 |
9 files changed, 93 insertions, 44 deletions
diff --git a/src/cla_parse.c b/src/cla_parse.c index ab1e44c..4d824f4 100644 --- a/src/cla_parse.c +++ b/src/cla_parse.c @@ -31,7 +31,7 @@ #include "help.h" // #include "name_from_url.h" // #include "pkg_build.h" -#include "pkg/create.h" +#include "pkg.h" // #include "pkg_search.h" // #include "pkg_install.h" // #include "pkg_list.h" @@ -40,9 +40,8 @@ // #include "repo_add.h" // #include "update.h" -#define COMMAND(arg, large, small, code) \ - if (strcmp(arg, large) == 0 || strcmp(arg, small) == 0) \ - code +#define COMMAND(large, small) \ + (!strcmp(argv[i], large) || !strcmp(argv[i], small)) #define NOT_ENOUGH_ARGS(arg, next) \ log_error("Not enough arguments! Try: pkgit %s [%s]", (arg), (next)) @@ -59,7 +58,8 @@ void cmd_add(char **argv, int i) { void cmd_build(int argc, char **argv, int i) { if (argv[i + 1]) { for (int j = i + 1; j < argc; j++) { - if (argv[j][0] == '-') continue; + if (argv[j][0] == '-') + continue; printf("build pkg %s\n", argv[j]); // str_slc arg = mstrslc(argv[j]); // package_t pkg = pkg_create(arg); @@ -76,7 +76,8 @@ void cmd_build(int argc, char **argv, int i) { void cmd_install(int argc, char **argv, int i) { if (argv[i + 1]) { for (int j = i + 1; j < argc; j++) { - if (argv[j][0] == '-') continue; + if (argv[j][0] == '-') + continue; printf("install pkg %s\n", argv[j]); // str_slc arg = mstrslc(argv[j]); // package_t pkg = pkg_create(arg); @@ -90,7 +91,8 @@ void cmd_install(int argc, char **argv, int i) { void cmd_remove(int argc, char **argv, int i) { if (argv[i + 1]) { for (int j = i + 1; j < argc; j++) { - if (argv[j][0] == '-') continue; + if (argv[j][0] == '-') + continue; printf("remove pkg %s\n", argv[j]); // str_slc arg = mstrslc(argv[j]); // package_t pkg = pkg_create(arg); @@ -160,10 +162,14 @@ void flags_cmd(int argc, char **argv, int i) { void flags_parse(int argc, char **argv) { for (int i = 1; i < argc; i++) { - if (argv[i][0] != '-') continue; + if (argv[i][0] != '-') + continue; if (argv[i][1] == '-') { - COMMAND(argv[i], "--quiet", "-q", { flags.verbose = false; }); - COMMAND(argv[i], "--force", "-f", { flags.force = true; }); + if (COMMAND("--quiet", "-q")) + flags.verbose = false; + if (COMMAND("--force", "-f")) { + flags.force = true; + }; } else { flags_mod(argv, i); flags_cmd(argc, argv, i); @@ -173,22 +179,48 @@ void flags_parse(int argc, char **argv) { void cmds_parse(int argc, char **argv) { for (int i = 1; i < argc; i++) { - COMMAND(argv[i], "--add", "a", { cmd_add(argv, i); }); - COMMAND(argv[i], "--build", "b", { cmd_build(argc, argv, i); }); - COMMAND(argv[i], "--install", "i", { cmd_install(argc, argv, i); }); - COMMAND(argv[i], "--remove", "r", { cmd_remove(argc, argv, i); }); - COMMAND(argv[i], "--update", "u", {/*update();*/}); - COMMAND(argv[i], "--declare", "d", {/*declare();*/}); - COMMAND(argv[i], "--list", "l", {/*pkgs_list();*/}); - COMMAND(argv[i], "--search", "s", {/*search(argv[i + 1]);*/}); - COMMAND(argv[i], "--version", "v", { printf("%s\n", VERSION); }); - COMMAND(argv[i], "--help", "h", { help(); }); - COMMAND(argv[i], "--check", "c", {/*deps_resolve();*/}); + if (COMMAND("--add", "a")) { + cmd_add(argv, i); + } + if (COMMAND("--build", "b")) { + cmd_build(argc, argv, i); + } + if (COMMAND("--install", "i")) { + cmd_install(argc, argv, i); + } + if (COMMAND("--remove", "r")) { + cmd_remove(argc, argv, i); + } + if (COMMAND("--update", "u")) { + panic("not implemented"); + // update(); + } + if (COMMAND("--declare", "d")) { + // declare(); + } + if (COMMAND("--list", "l")) { + // pkgs_list(); + } + if (COMMAND("--search", "s")) { + // search(argv[i + 1]); + } + if (COMMAND("--version", "v")) { + printf(VERSION "\n"); + } + if (COMMAND("--help", "h")) { + help(); + } + if (COMMAND("--check", "c")) { + // deps_resolve + } } } void cla_parse(int argc, char **argv) { - if (!argv[1]) { + // default + flags.force = false; + flags.verbose = true; + if (argc == 1) { help(); return; } diff --git a/src/globs.c b/src/globs.c index 519e5f9..860bafb 100644 --- a/src/globs.c +++ b/src/globs.c @@ -35,7 +35,6 @@ void init_vars(void) { if (file_exists("/etc/pkgit/repos.lua")) { cfg.dir = mstr("/etc/pkgit"); cfg.name = mstr("/etc/pkgit/repos.lua"); - } else { const char *tmp = getenv("XDG_CONFIG_HOME"); if (tmp) { @@ -62,13 +62,14 @@ void help(void) { printf(BOLD_YELLOW "'-_ " BOLD_MAGENTA "'" BOLD_YELLOW " _-' \n"); printf(BOLD_YELLOW " `'-.-'` " COLOR_RESET "\n"); } else { - printf("pkgit %s%s- package it!%s\n", ITALIC, GRAY, COLOR_RESET); - printf("%s%s%s\n", MAGENTA, VERSION, COLOR_RESET); + printf(BOLD "pkgit " COLOR_RESET ITALIC GRAY "- package it!" COLOR_RESET + "\n"); + printf("version " MAGENTA VERSION COLOR_RESET "\n"); } printf("\n"); printf(RED "subcommand flags" COLOR_RESET ":\n"); - for (size_t i = 0; i < sizeof(cmd_flags) / sizeof(cmd_flags[0]); i++) { + for (size_t i = 0; i < LENGTH(cmd_flags); i++) { printf(COLOR_RESET "\t" GREEN "%-2s" COLOR_RESET ", " YELLOW "%-12s" BLUE "%-16s" GRAY "# %s\n" COLOR_RESET, cmd_flags[i].short_flag, cmd_flags[i].long_flag, @@ -76,7 +77,7 @@ void help(void) { } printf("\n" RED "modifier flags" COLOR_RESET ":\n"); - for (size_t i = 0; i < sizeof(mod_flags) / sizeof(mod_flags[0]); i++) { + for (size_t i = 0; i < LENGTH(mod_flags); i++) { printf(COLOR_RESET "\t" GREEN "%-2s" COLOR_RESET ", " YELLOW "%-12s" BLUE "%-16s" GRAY "# %s\n" COLOR_RESET, mod_flags[i].short_flag, mod_flags[i].long_flag, diff --git a/src/lua_globs.c b/src/lua_globs.c index 5a8e51c..d6bd353 100644 --- a/src/lua_globs.c +++ b/src/lua_globs.c @@ -18,10 +18,12 @@ */ -#include "lua_globs.h" +#include <stdlib.h> + #include "files.h" #include "globs.h" #include "log.h" +#include "lua_globs.h" #include "str.h" lua_State *L = NULL; @@ -19,14 +19,16 @@ */ // #include "cla_parse.h" +#include "pkg.h" #include "globs.h" -#include "pkg_create.h" #include "str.h" int main(int argc, char **argv) { (void)argc; init_vars(); package_t pkg = pkg_create(mstrslc(argv[1])); + str_println(&pkg.name); + pkg_free(&pkg); // cla_parse(argc, argv); free_vars(); return 0; diff --git a/src/pkg/.clangd b/src/pkg/.clangd deleted file mode 100644 index 5022e8f..0000000 --- a/src/pkg/.clangd +++ /dev/null @@ -1,4 +0,0 @@ -CompileFlags: - Add: [-I/usr/include/luajit-2.1, -I../include] ---- -UseTab: Always diff --git a/src/pkg/create.c b/src/pkg_create.c index 9e3e765..9517868 100644 --- a/src/pkg/create.c +++ b/src/pkg_create.c @@ -21,10 +21,11 @@ #include <string.h> #include <unistd.h> +#include "pkg.h" + #include "files.h" #include "globs.h" #include "log.h" -#include "pkg_create.h" #include "str.h" static str get_destdir(str_slc cwd, str_slc arg) { @@ -40,7 +41,7 @@ static str get_pkgsrc(package_t pkg) { return str_format("%.*s/%.*s", str_fmt(&inst_dirs.src), pkg.name); else return str_format("%.*s/%.*s/%.*s", str_fmt(&inst_dirs.src), - str_fmt(&pkg.name), str_fmt(&pkg.version)); + str_fmt(&pkg.name), str_fmt(&pkg.version)); } package_t pkg_create(str_slc arg) { diff --git a/src/pkg_free.c b/src/pkg_free.c new file mode 100644 index 0000000..2b1d670 --- /dev/null +++ b/src/pkg_free.c @@ -0,0 +1,9 @@ +#include "pkg.h" + +void pkg_free(package_t *pkg) { + str_free(&pkg->name); + str_free(&pkg->url); + str_free(&pkg->version); + str_free(&pkg->target); + str_free(&pkg->src); +} @@ -160,12 +160,13 @@ void str_ncopy_into(str *dest, const str *src, size_t count) { } void str_ncopy_cstr_into(str *dest, const char *src, size_t count) { - assert_str_is_valid(dest); assert(src); - dest->len = count; - if (dest->cap < count + 1) + if (!str_is_valid(dest)) + *dest = str_new_with_capacity(count + 1); + else if (dest->cap < count + 1) str_reserve_exact(dest, count + 1); memcpy(dest->data, src, count); + dest->len = count; dest->data[count] = 0; } @@ -743,15 +744,21 @@ ptrdiff_t str_slc_find_char_right(const str_slc s, char c) { } str str_from_after_delim(str *arg, char delimiter) { - size_t i = str_find_char_right(arg, delimiter); - str res = str_slice_to_str(arg, i + 1, arg->len); - return res; + return str_from_after_delim_str_slc(_strslc(arg), delimiter); +} + +str str_from_after_delim_str_slc(str_slc arg, char delimiter) { + size_t i = str_slc_find_char_right(arg, delimiter); + return str_slc_slice_to_str(arg, i + 1, arg.len); } str str_from_before_delim(str *arg, char delimiter) { - size_t i = str_find_char(arg, delimiter); - str res = str_slice_to_str(arg, i + 1, arg->len); - return res; + return str_from_before_delim_str_slc(_strslc(arg), delimiter); +} + +str str_from_before_delim_str_slc(str_slc arg, char delimiter) { + size_t i = str_slc_find_char(arg, delimiter); + return str_slc_slice_to_str(arg, i + 1, arg.len); } str_slc str_slc_from_after_delim(str_slc arg, char delimiter) { |
