aboutsummaryrefslogtreecommitdiff
path: root/src/list_pkgs.c
diff options
context:
space:
mode:
authordacctal <dacctal@symlinx.net>2026-05-25 13:32:21 +0000
committerdacctal <dacctal@symlinx.net>2026-05-25 13:32:21 +0000
commitd8193b7bf893d0c4f3a508dc1eacf44a40cbfef3 (patch)
treea3bd6f3986e10962db3f7920d25b2c9bca3b5353 /src/list_pkgs.c
parentd864bf7907c814eef30e906e59b0890df34d311c (diff)
'find' will search repo for argument, 'list' will list all installed packages
Diffstat (limited to 'src/list_pkgs.c')
-rw-r--r--src/list_pkgs.c23
1 files changed, 17 insertions, 6 deletions
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