diff options
-rw-r--r-- | src/apk_database.h | 1 | ||||
-rw-r--r-- | src/database.c | 30 | ||||
-rw-r--r-- | src/info.c | 2 |
3 files changed, 18 insertions, 15 deletions
diff --git a/src/apk_database.h b/src/apk_database.h index db8a019..e7bfac9 100644 --- a/src/apk_database.h +++ b/src/apk_database.h @@ -113,6 +113,7 @@ struct apk_db_file *apk_db_file_query(struct apk_database *db, #define APK_OPENF_WRITE 0x0001 #define APK_OPENF_CREATE 0x0002 #define APK_OPENF_EMPTY_STATE 0x0004 +#define APK_OPENF_EMPTY_REPOS 0x0008 int apk_db_open(struct apk_database *db, const char *root, unsigned int flags); int apk_db_write_config(struct apk_database *db); diff --git a/src/database.c b/src/database.c index 94fc3a0..4da547d 100644 --- a/src/database.c +++ b/src/database.c @@ -712,23 +712,25 @@ int apk_db_open(struct apk_database *db, const char *root, unsigned int flags) } } - if (apk_repos == NULL) - apk_repos = "/etc/apk/repositories"; - blob = apk_blob_from_file(apk_repos); - if (!APK_BLOB_IS_NULL(blob)) { - r = apk_blob_for_each_segment(blob, "\n", - apk_db_add_repository, db); - free(blob.ptr); - if (r != 0) - goto ret_r; + if (!(flags & APK_OPENF_EMPTY_REPOS)) { + if (apk_repos == NULL) + apk_repos = "/etc/apk/repositories"; + blob = apk_blob_from_file(apk_repos); + if (!APK_BLOB_IS_NULL(blob)) { + r = apk_blob_for_each_segment(blob, "\n", + apk_db_add_repository, db); + free(blob.ptr); + if (r != 0) + goto ret_r; + } } } - list_for_each_entry(repo, &apk_repository_list.list, list) { - r = apk_db_add_repository(db, APK_BLOB_STR(repo->url)); - if (r != 0) { - msg = repo->url; - goto ret_r; + if (!(flags & APK_OPENF_EMPTY_REPOS)) { + list_for_each_entry(repo, &apk_repository_list.list, list) { + r = apk_db_add_repository(db, APK_BLOB_STR(repo->url)); + if (r != 0) + goto ret_r; } } @@ -228,7 +228,7 @@ static int info_main(void *ctx, int argc, char **argv) struct apk_database db; int r; - if (apk_db_open(&db, apk_root, APK_OPENF_READ) < 0) + if (apk_db_open(&db, apk_root, APK_OPENF_READ + APK_OPENF_EMPTY_REPOS) < 0) return -1; if (ictx->action != NULL) |