diff options
| author | dacctal <dacctal@symlinx.net> | 2026-05-25 13:32:21 +0000 |
|---|---|---|
| committer | dacctal <dacctal@symlinx.net> | 2026-05-25 13:32:21 +0000 |
| commit | d8193b7bf893d0c4f3a508dc1eacf44a40cbfef3 (patch) | |
| tree | a3bd6f3986e10962db3f7920d25b2c9bca3b5353 /src | |
| parent | d864bf7907c814eef30e906e59b0890df34d311c (diff) | |
'find' will search repo for argument, 'list' will list all installed packages
Diffstat (limited to 'src')
| -rw-r--r-- | src/cla_parse.c | 2 | ||||
| -rw-r--r-- | src/find.c | 25 | ||||
| -rw-r--r-- | src/list_pkgs.c | 23 |
3 files changed, 29 insertions, 21 deletions
diff --git a/src/cla_parse.c b/src/cla_parse.c index 6bac273..f9e759b 100644 --- a/src/cla_parse.c +++ b/src/cla_parse.c @@ -81,7 +81,7 @@ void cla_parse(int argc, char **argv) { COMMAND("update", "u", { update_all(); }); COMMAND("declare", "d", { declare(); }); COMMAND("list", "l", { list_pkgs(); }); - COMMAND("find", "f", { find(); }); + COMMAND("find", "f", { find(argv[i + 1]); }); COMMAND("--version", "-v", { printf("%s\n", version); }); COMMAND("--help", "-h", { help(); }); COMMAND("--check", "-c", { resolve_deps(); return; }); @@ -1,23 +1,20 @@ -#include <dirent.h> #include <stdio.h> #include <string.h> -#include <sys/stat.h> +#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); } } diff --git a/src/list_pkgs.c b/src/list_pkgs.c index 5ac293a..5d6fcce 100644 --- a/src/list_pkgs.c +++ b/src/list_pkgs.c @@ -1,12 +1,23 @@ +#include <dirent.h> #include <stdio.h> +#include <string.h> +#include <sys/stat.h> -#include "list_pkgs.h" #include "lua_state.h" +#include "vars.h" void list_pkgs() { - init_lua_state(); - cache_repos(); - for (size_t i = 0; i < cached_repos_count; i++) { - printf("%s\n", cached_repos[i].source_key); - } + 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); + 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); + } }
\ No newline at end of file |
