Commit 080fa825 authored by Natanael Copa's avatar Natanael Copa

implement --update-cache option

This will update the repository cache upon db_open.
parent f1125dfc
......@@ -41,6 +41,7 @@ static struct apk_option generic_options[] = {
{ 'v', "verbose", "Print more information" },
{ 'V', "version", "Print program version and exit" },
{ 'f', "force", "Do what was asked even if it looks dangerous" },
{ 'U', "update-cache", "Update the repository cache" },
{ 0x101, "progress", "Show a progress bar" },
{ 0x102, "clean-protected", "Do not create .apk-new files to "
"configuration dirs" },
......@@ -324,6 +325,9 @@ int main(int argc, char **argv)
case 'f':
apk_flags |= APK_FORCE;
break;
case 'U':
apk_flags |= APK_UPDATE_CACHE;
break;
case 0x101:
apk_flags |= APK_PROGRESS;
break;
......
......@@ -46,6 +46,7 @@ extern unsigned int apk_flags;
#define APK_UPGRADE 0x0010
#define APK_RECURSIVE 0x0020
#define APK_PREFER_AVAILABLE 0x0040
#define APK_UPDATE_CACHE 0x0080
#define apk_error(args...) apk_log("ERROR: ", args);
#define apk_warning(args...) if (apk_verbosity > 0) { apk_log("WARNING: ", args); }
......
......@@ -11,6 +11,7 @@
#include <dirent.h>
#include <unistd.h>
#include <stdio.h>
#include "apk_defines.h"
#include "apk_applet.h"
......
......@@ -1026,7 +1026,7 @@ int apk_db_add_repository(apk_database_t _db, apk_blob_t repository)
struct apk_istream *is = NULL;
struct apk_bstream *bs = NULL;
struct apk_repository *repo;
int r, n;
int r, n = 1;
if (repository.ptr == NULL || *repository.ptr == '\0'
|| *repository.ptr == '#')
......@@ -1045,9 +1045,13 @@ int apk_db_add_repository(apk_database_t _db, apk_blob_t repository)
if (apk_url_local_file(repo->url) == NULL) {
csum_blob(repository, repo->url_csum);
if (apk_flags & APK_UPDATE_CACHE)
n = apk_repository_update(db, repo);
bs = apk_db_cache_open(db, repo->url_csum, apk_index_gz);
if (bs == NULL) {
n = apk_repository_update(db, repo);
if (n == 1)
n = apk_repository_update(db, repo);
if (n < 0)
return n;
bs = apk_db_cache_open(db, repo->url_csum,
......
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