summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/apk_database.h1
-rw-r--r--src/database.c4
-rw-r--r--src/update.c8
3 files changed, 10 insertions, 3 deletions
diff --git a/src/apk_database.h b/src/apk_database.h
index b2fa28e..315a429 100644
--- a/src/apk_database.h
+++ b/src/apk_database.h
@@ -148,6 +148,7 @@ struct apk_database {
char *cache_remount_dir;
apk_blob_t *arch;
unsigned int local_repos, available_repos;
+ int repo_update_errors;
unsigned int pending_triggers;
int performing_self_update : 1;
int permanent : 1;
diff --git a/src/database.c b/src/database.c
index 8619465..0828725 100644
--- a/src/database.c
+++ b/src/database.c
@@ -2017,8 +2017,10 @@ static int apk_repository_update(struct apk_database *db, struct apk_repository
int r, verify = (apk_flags & APK_ALLOW_UNTRUSTED) ? APK_SIGN_NONE : APK_SIGN_VERIFY;
r = apk_cache_download(db, repo, NULL, verify, NULL, NULL);
- if (r != 0)
+ if (r != 0) {
apk_error("%s: %s", repo->url, apk_error_str(r));
+ db->repo_update_errors++;
+ }
return r;
}
diff --git a/src/update.c b/src/update.c
index ed721be..84833ec 100644
--- a/src/update.c
+++ b/src/update.c
@@ -20,6 +20,7 @@ static int update_main(void *ctx, struct apk_database *db, struct apk_string_arr
{
struct apk_repository *repo;
int i;
+ char buf[32] = "OK:";
if (apk_verbosity < 1)
return 0;
@@ -35,10 +36,13 @@ static int update_main(void *ctx, struct apk_database *db, struct apk_string_arr
db->repos[i].url);
}
- apk_message("OK: %d distinct packages available",
+ if (db->repo_update_errors != 0)
+ snprintf(buf, sizeof(buf), "%d errors;",
+ db->repo_update_errors);
+ apk_message("%s %d distinct packages available", buf,
db->available.packages.num_items);
- return 0;
+ return db->repo_update_errors;
}
static struct apk_applet apk_update = {