1
0
mirror of https://github.com/moparisthebest/pacman synced 2024-10-31 15:45:03 -04:00

pacman: move database syncing to util.c

Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
Allan McRae 2015-06-18 00:12:14 +10:00
parent b0dac754d2
commit e49abc9860
3 changed files with 33 additions and 32 deletions

View File

@ -305,37 +305,6 @@ static int sync_cleancache(int level)
return ret;
}
static int sync_synctree(int level, alpm_list_t *syncs)
{
alpm_list_t *i;
unsigned int success = 0;
for(i = syncs; i; i = alpm_list_next(i)) {
alpm_db_t *db = i->data;
int ret = alpm_db_update((level < 2 ? 0 : 1), db);
if(ret < 0) {
pm_printf(ALPM_LOG_ERROR, _("failed to update %s (%s)\n"),
alpm_db_get_name(db), alpm_strerror(alpm_errno(config->handle)));
} else if(ret == 1) {
printf(_(" %s is up to date\n"), alpm_db_get_name(db));
success++;
} else {
success++;
}
}
/* We should always succeed if at least one DB was upgraded - we may possibly
* fail later with unresolved deps, but that should be rare, and would be
* expected
*/
if(!success) {
pm_printf(ALPM_LOG_ERROR, _("failed to synchronize any databases\n"));
trans_init_error();
}
return (success > 0);
}
/* search the sync dbs for a matching package */
static int sync_search(alpm_list_t *syncs, alpm_list_t *targets)
{
@ -903,7 +872,7 @@ int pacman_sync(alpm_list_t *targets)
colon_printf(_("Synchronizing package databases...\n"));
alpm_logaction(config->handle, PACMAN_CALLER_PREFIX,
"synchronizing package lists\n");
if(!sync_synctree(config->op_s_sync, sync_dbs)) {
if(!sync_syncdbs(config->op_s_sync, sync_dbs)) {
return 1;
}
}

View File

@ -143,6 +143,37 @@ int check_syncdbs(size_t need_repos, int check_valid)
return ret;
}
int sync_syncdbs(int level, alpm_list_t *syncs)
{
alpm_list_t *i;
unsigned int success = 0;
for(i = syncs; i; i = alpm_list_next(i)) {
alpm_db_t *db = i->data;
int ret = alpm_db_update((level < 2 ? 0 : 1), db);
if(ret < 0) {
pm_printf(ALPM_LOG_ERROR, _("failed to update %s (%s)\n"),
alpm_db_get_name(db), alpm_strerror(alpm_errno(config->handle)));
} else if(ret == 1) {
printf(_(" %s is up to date\n"), alpm_db_get_name(db));
success++;
} else {
success++;
}
}
/* We should always succeed if at least one DB was upgraded - we may possibly
* fail later with unresolved deps, but that should be rare, and would be
* expected
*/
if(!success) {
pm_printf(ALPM_LOG_ERROR, _("failed to synchronize any databases\n"));
trans_init_error();
}
return (success > 0);
}
/* discard unhandled input on the terminal's input buffer */
static int flush_term_input(int fd)
{

View File

@ -49,6 +49,7 @@ int trans_init(alpm_transflag_t flags, int check_valid);
int trans_release(void);
int needs_root(void);
int check_syncdbs(size_t need_repos, int check_valid);
int sync_syncdbs(int level, alpm_list_t *syncs);
unsigned short getcols(void);
void columns_cache_reset(void);
int rmrf(const char *path);