From d8193b7bf893d0c4f3a508dc1eacf44a40cbfef3 Mon Sep 17 00:00:00 2001 From: dacctal Date: Mon, 25 May 2026 13:32:21 +0000 Subject: 'find' will search repo for argument, 'list' will list all installed packages --- src/find.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) (limited to 'src/find.c') diff --git a/src/find.c b/src/find.c index aaeaaa2..4387d3c 100644 --- a/src/find.c +++ b/src/find.c @@ -1,23 +1,20 @@ -#include #include #include -#include +#include "list_pkgs.h" #include "lua_state.h" -#include "vars.h" -void find() { - char* src_code = map_get(&cached_install_directories, "src"); - struct dirent* dirent_ptr; - DIR* dir_ptr = opendir(src_code); - - if (dir_ptr == NULL) { - fprintf(stderr, "%scould not open %s\n", print_pkgit, src_code); +void find(const char* arg) { + init_lua_state(); + cache_repos(); + if (!arg) { + for (size_t i = 0; i < cached_repos_count; i++) { + printf("%s\n", cached_repos[i].source_key); + } return; } - - while ((dirent_ptr = readdir(dir_ptr)) != NULL) { - if (strcmp(dirent_ptr->d_name, "..") == 0 || strcmp(dirent_ptr->d_name, ".") == 0) { continue; } - printf("%s\n", dirent_ptr->d_name); + for (size_t i = 0; i < cached_repos_count; i++) { + if (!strstr(cached_repos[i].source_key, arg)) continue; + printf("%s\n", cached_repos[i].source_key); } } -- cgit v1.2.3