#include "repo.h" #include "dirent.h" #include "limits.h" #include "malloc.h" #include "package.h" #include "stdio.h" #include int repo_check_package(pow_repo **repos, size_t repo_count, const char *query) { if (!repos) { printf("no repos defined in your config, please define them\n"); return 1; } DIR *dp; struct dirent *ep; for (size_t i = 0; i < repo_count; i++) { char *package_path = malloc(PATH_MAX); if (!package_path) { printf("failed to allocate package_path, sizeof %zu\n", PATH_MAX); return 1; } int written = snprintf(package_path, PATH_MAX, "%s/%s", repos[i]->path, query); if (written >= PATH_MAX) { printf("something went seriously wrong. the path for the package %s is " "too long?\n", query); free(package_path); return 1; } dp = opendir(package_path); free(package_path); if (!dp) { continue; } printf("found package %s in repo %s\n", query, repos[i]->path); pow_package *pkg = malloc(sizeof(pow_package)); package_open(pkg, "./testing/samurai/1.3.lua"); printf("Name: %s\n" "Version: %s\n", pkg->name, pkg->version); package_close(pkg); closedir(dp); } return 0; }