From 2cfcc874b9332ad207398b9e20dc8880d93e8ae4 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Thu, 25 Aug 2011 18:29:00 -0500 Subject: Better error handling out of package load method There are many other ways to fail a package load other than "file not found". We should also use the correct error code in this case. Clean it up a bit in the various callers. Signed-off-by: Dan McGee --- lib/libalpm/be_package.c | 2 +- src/pacman/query.c | 14 ++++++++++++-- src/util/testpkg.c | 3 +++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/lib/libalpm/be_package.c b/lib/libalpm/be_package.c index 2566574d..0e58d20a 100644 --- a/lib/libalpm/be_package.c +++ b/lib/libalpm/be_package.c @@ -308,7 +308,7 @@ alpm_pkg_t *_alpm_pkg_load_internal(alpm_handle_t *handle, const char *pkgfile, newpkg->size = st.st_size; } else { /* couldn't stat the pkgfile, return an error */ - RET_ERR(handle, ALPM_ERR_PKG_OPEN, NULL); + RET_ERR(handle, ALPM_ERR_PKG_NOT_FOUND, NULL); } /* can we get away with skipping checksums? */ diff --git a/src/pacman/query.c b/src/pacman/query.c index 2fb985a3..ec98c999 100644 --- a/src/pacman/query.c +++ b/src/pacman/query.c @@ -332,7 +332,7 @@ static int query_group(alpm_list_t *targets) } } } else { - pm_fprintf(stderr, ALPM_LOG_ERROR, _("group \"%s\" was not found\n"), grpname); + pm_fprintf(stderr, ALPM_LOG_ERROR, _("group '%s' was not found\n"), grpname); ret++; } } @@ -560,7 +560,17 @@ int pacman_query(alpm_list_t *targets) } if(pkg == NULL) { - pm_fprintf(stderr, ALPM_LOG_ERROR, _("package \"%s\" not found\n"), strname); + switch(alpm_errno(config->handle)) { + case ALPM_ERR_PKG_NOT_FOUND: + pm_fprintf(stderr, ALPM_LOG_ERROR, + _("package '%s' was not found\n"), strname); + break; + default: + pm_fprintf(stderr, ALPM_LOG_ERROR, + _("could not load package '%s': %s\n"), strname, + alpm_strerror(alpm_errno(config->handle))); + break; + } ret = 1; continue; } diff --git a/src/util/testpkg.c b/src/util/testpkg.c index ac2dde28..90758e16 100644 --- a/src/util/testpkg.c +++ b/src/util/testpkg.c @@ -63,6 +63,9 @@ int main(int argc, char *argv[]) || pkg == NULL) { err = alpm_errno(handle); switch(err) { + case ALPM_ERR_PKG_NOT_FOUND: + printf("Cannot find the given file.\n"); + break; case ALPM_ERR_PKG_OPEN: printf("Cannot open the given file.\n"); break; -- cgit v1.2.3-24-g4f1b