Commit b0921eba authored by Natanael Copa's avatar Natanael Copa

info: do not read the repositories as this tool only query the statedb

This allows you to query the state db even if you do not have write
permissions in cache dir (which is needed if you have remote repositories)

This should speed up things and save some memory if you have big and slow
remote repositories.
parent 0dfbee95
......@@ -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);
......
......@@ -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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment