summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2011-08-26 01:29:00 +0200
committerDan McGee <dan@archlinux.org>2011-08-29 02:52:41 +0200
commit2cfcc874b9332ad207398b9e20dc8880d93e8ae4 (patch)
tree6276468d8aa91c6e8546704a5c92166752c01ac6
parentdc3336c27728fc16d2f9e68cb818648e7ca88467 (diff)
downloadpacman-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.c2
-rw-r--r--src/pacman/query.c14
-rw-r--r--src/util/testpkg.c3
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;