From 0e2228d53144da8e341bae1c16974865cb1a757c Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 5 Sep 2023 16:11:21 +0000 Subject: [PATCH] repo: Ignore if local repositories don't exist when scanning Signed-off-by: Michael Tremer --- src/libpakfire/include/pakfire/repo.h | 4 ++++ src/libpakfire/repo.c | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/libpakfire/include/pakfire/repo.h b/src/libpakfire/include/pakfire/repo.h index 982e51ca4..d72a8d7b3 100644 --- a/src/libpakfire/include/pakfire/repo.h +++ b/src/libpakfire/include/pakfire/repo.h @@ -81,6 +81,10 @@ int pakfire_repo_clean(struct pakfire_repo* repo, int flags); // Scan +enum pakfire_repo_scan_flags { + PAKFIRE_REPO_SCAN_IGNORE_NOENT = (1 << 0), +}; + int pakfire_repo_scan(struct pakfire_repo* repo, int flags); // Refresh diff --git a/src/libpakfire/repo.c b/src/libpakfire/repo.c index e2e80d63a..9bf4c92a4 100644 --- a/src/libpakfire/repo.c +++ b/src/libpakfire/repo.c @@ -407,7 +407,7 @@ static int pakfire_repo_read_metadata(struct pakfire_repo* repo, const char* pat DEBUG(repo->pakfire, "No metadata available on local repository." " Falling back to scan...\n"); - return pakfire_repo_scan(repo, 0); + return pakfire_repo_scan(repo, PAKFIRE_REPO_SCAN_IGNORE_NOENT); } break; } @@ -1317,6 +1317,12 @@ PAKFIRE_EXPORT int pakfire_repo_scan(struct pakfire_repo* repo, int flags) { return 1; } + // Check if path exists + if (!pakfire_path_exists(path)) { + if (flags & PAKFIRE_REPO_SCAN_IGNORE_NOENT) + return 0; + } + // Create a new filelist r = pakfire_filelist_create(&filelist, repo->pakfire); if (r) -- 2.39.5