xbps-query: fallback to repos on ENOENT for show modes.

This commit is contained in:
Juan RP 2012-11-05 13:17:15 +01:00
parent 2e649f9315
commit ef6ed7d8c7
3 changed files with 18 additions and 7 deletions

View File

@ -27,6 +27,7 @@
#include <stdlib.h>
#include <string.h>
#include <getopt.h>
#include <errno.h>
#include <xbps_api.h>
#include "defs.h"
@ -220,23 +221,33 @@ main(int argc, char **argv)
/* show mode */
if (repo_mode)
rv = repo_show_pkg_info(&xh, argv[optind], props);
else
else {
rv = show_pkg_info_from_metadir(&xh,
argv[optind], props);
if (rv == ENOENT)
rv = repo_show_pkg_info(&xh,
argv[optind], props);
}
} else if (show_files) {
/* show-files mode */
if (repo_mode)
rv = repo_show_pkg_files(&xh, argv[optind]);
else
else {
rv = show_pkg_files_from_metadir(&xh, argv[optind]);
if (rv == ENOENT)
rv = repo_show_pkg_files(&xh, argv[optind]);
}
} else if (show_deps) {
/* show-deps mode */
if (repo_mode)
rv = repo_show_pkg_deps(&xh, argv[optind]);
else
else {
rv = show_pkg_deps(&xh, argv[optind]);
if (rv == ENOENT)
rv = repo_show_pkg_deps(&xh, argv[optind]);
}
} else if (show_rdeps) {
/* show-rdeps mode */

View File

@ -47,7 +47,7 @@ show_pkg_deps(struct xbps_handle *xhp, const char *pkgname)
propsd = xbps_dictionary_from_metadata_plist(xhp,
pkgname, XBPS_PKGPROPS);
if (propsd == NULL)
return errno;
return ENOENT;
rv = xbps_callback_array_iter_in_dict(xhp, propsd, "run_depends",
list_strings_sep_in_array, NULL);
@ -66,7 +66,7 @@ show_pkg_revdeps(struct xbps_handle *xhp, const char *pkgname)
if (pkgd == NULL) {
pkgd = xbps_find_pkg_dict_installed(xhp, pkgname, false);
if (pkgd == NULL)
return 0;
return ENOENT;
}
rv = xbps_callback_array_iter_in_dict(xhp, pkgd, "requiredby",
list_strings_sep_in_array, NULL);

View File

@ -176,7 +176,7 @@ show_pkg_info_from_metadir(struct xbps_handle *xhp,
d = xbps_dictionary_from_metadata_plist(xhp, pkgname, XBPS_PKGPROPS);
if (d == NULL)
return EINVAL;
return ENOENT;
prop_dictionary_get_cstring_nocopy(d, "pkgname", &pname);
pkgdb_d = xbps_pkgdb_get_pkgd(xhp, pname, false);
@ -209,7 +209,7 @@ show_pkg_files_from_metadir(struct xbps_handle *xhp, const char *pkgname)
d = xbps_dictionary_from_metadata_plist(xhp, pkgname, XBPS_PKGFILES);
if (d == NULL)
return EINVAL;
return ENOENT;
rv = show_pkg_files(d);
prop_object_release(d);