mirror of
https://github.com/moparisthebest/pacman
synced 2025-03-11 07:31:04 -04:00
pacman: add -n/--native filter to -Q
Signed-off-by: Simon Gomizelj <simongmzlj@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
parent
b1d614a01d
commit
fc35b16fd4
@ -273,6 +273,10 @@ Query Options[[QO]]
|
||||
database(s). Typically these are packages that were downloaded manually
|
||||
and installed with '\--upgrade'.
|
||||
|
||||
*-n, \--native*::
|
||||
Restrict or filter output to packages that are found in the sync
|
||||
database(s). This is the inverse filter of '\--foreign'.
|
||||
|
||||
*-o, \--owns* <file>::
|
||||
Search for packages that own the specified file(s). The path can be
|
||||
relative or absolute and one or more files can be specified.
|
||||
|
@ -51,6 +51,7 @@ typedef struct __config_t {
|
||||
unsigned short op_q_info;
|
||||
unsigned short op_q_list;
|
||||
unsigned short op_q_foreign;
|
||||
unsigned short op_q_native;
|
||||
unsigned short op_q_unrequired;
|
||||
unsigned short op_q_deps;
|
||||
unsigned short op_q_explicit;
|
||||
|
@ -142,6 +142,7 @@ static void usage(int op, const char * const myname)
|
||||
addlist(_(" -k, --check check that the files owned by the package(s) are present\n"));
|
||||
addlist(_(" -l, --list list the contents of the queried package\n"));
|
||||
addlist(_(" -m, --foreign list installed packages not found in sync db(s) [filter]\n"));
|
||||
addlist(_(" -n, --native list installed packages only found in sync db(s) [filter]\n"));
|
||||
addlist(_(" -o, --owns <file> query the package that owns <file>\n"));
|
||||
addlist(_(" -p, --file <package> query a package file instead of the database\n"));
|
||||
addlist(_(" -q, --quiet show less information for query and search\n"));
|
||||
@ -462,6 +463,7 @@ static int parsearg_query(int opt)
|
||||
case 'k': config->op_q_check = 1; break;
|
||||
case 'l': config->op_q_list = 1; break;
|
||||
case 'm': config->op_q_foreign = 1; break;
|
||||
case 'n': config->op_q_native = 1; break;
|
||||
case 'o': config->op_q_owns = 1; break;
|
||||
case 'p': config->op_q_isfile = 1; break;
|
||||
case 'q': config->quiet = 1; break;
|
||||
@ -594,6 +596,7 @@ static int parseargs(int argc, char *argv[])
|
||||
{"check", no_argument, 0, 'k'},
|
||||
{"list", no_argument, 0, 'l'},
|
||||
{"foreign", no_argument, 0, 'm'},
|
||||
{"native", no_argument, 0, 'n'},
|
||||
{"nosave", no_argument, 0, 'n'},
|
||||
{"owns", no_argument, 0, 'o'},
|
||||
{"file", no_argument, 0, 'p'},
|
||||
|
@ -380,6 +380,10 @@ static int filter(alpm_pkg_t *pkg)
|
||||
alpm_pkg_get_reason(pkg) != ALPM_PKG_REASON_DEPEND) {
|
||||
return 0;
|
||||
}
|
||||
/* check if this pkg is in a sync DB */
|
||||
if(config->op_q_native && is_foreign(pkg)) {
|
||||
return 0;
|
||||
}
|
||||
/* check if this pkg isn't in a sync DB */
|
||||
if(config->op_q_foreign && !is_foreign(pkg)) {
|
||||
return 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user