diff options
author | Dan McGee <dan@archlinux.org> | 2011-08-26 01:29:00 +0200 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2011-08-29 02:52:41 +0200 |
commit | 2cfcc874b9332ad207398b9e20dc8880d93e8ae4 (patch) | |
tree | 6276468d8aa91c6e8546704a5c92166752c01ac6 | |
parent | dc3336c27728fc16d2f9e68cb818648e7ca88467 (diff) | |
download | pacman-2cfcc874b9332ad207398b9e20dc8880d93e8ae4.tar.gz pacman-2cfcc874b9332ad207398b9e20dc8880d93e8ae4.tar.xz |
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 <dan@archlinux.org>
-rw-r--r-- | lib/libalpm/be_package.c | 2 | ||||
-rw-r--r-- | src/pacman/query.c | 14 | ||||
-rw-r--r-- | 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; |