aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Groffen <grobian@gentoo.org>2022-12-15 10:35:57 +0100
committerFabian Groffen <grobian@gentoo.org>2022-12-15 10:35:57 +0100
commit05e24fdd5fda7fdee37c7f48d398e15f3ba56514 (patch)
treed640e3b8d1bf2c6e308958722b7898717e06f53b
parentqkeyword: gracefully handle case with no found arches (diff)
downloadportage-utils-05e24fdd5fda7fdee37c7f48d398e15f3ba56514.tar.gz
portage-utils-05e24fdd5fda7fdee37c7f48d398e15f3ba56514.tar.bz2
portage-utils-05e24fdd5fda7fdee37c7f48d398e15f3ba56514.zip
qkeyword: add -A option to show the current arch
Signed-off-by: Fabian Groffen <grobian@gentoo.org>
-rw-r--r--man/qkeyword.18
-rw-r--r--qkeyword.c31
2 files changed, 26 insertions, 13 deletions
diff --git a/man/qkeyword.1 b/man/qkeyword.1
index 2c7eaf5..476a6fa 100644
--- a/man/qkeyword.1
+++ b/man/qkeyword.1
@@ -1,5 +1,5 @@
.\" generated by mkman.py, please do NOT edit!
-.TH qkeyword "1" "Feb 2021" "Gentoo Foundation" "qkeyword"
+.TH qkeyword "1" "Dec 2022" "Gentoo Foundation" "qkeyword"
.SH NAME
qkeyword \- list packages based on keywords
.SH SYNOPSIS
@@ -37,6 +37,9 @@ match catname.
\fB\-m\fR \fI<arg>\fR, \fB\-\-matchmaint\fR \fI<arg>\fR
match maintainer email from metadata.xml (slow).
.TP
+\fB\-A\fR, \fB\-\-showarch\fR
+show selected arch from profile configuration.
+.TP
\fB\-i\fR, \fB\-\-imlate\fR
list packages that can be marked stable for <arch>.
.TP
@@ -76,6 +79,9 @@ Tighter output; suppress warnings.
\fB\-C\fR, \fB\-\-nocolor\fR
Don't output color.
.TP
+\fB\-\-color\fR
+Force color in output.
+.TP
\fB\-h\fR, \fB\-\-help\fR
Print this help and exit.
.TP
diff --git a/qkeyword.c b/qkeyword.c
index 0989e20..5bc1010 100644
--- a/qkeyword.c
+++ b/qkeyword.c
@@ -28,11 +28,12 @@
/* Required portage-utils stuff */
/********************************************************************/
-#define QKEYWORD_FLAGS "p:c:m:idtsanSTF:" COMMON_FLAGS
+#define QKEYWORD_FLAGS "p:c:m:AidtsanSTF:" COMMON_FLAGS
static struct option const qkeyword_long_opts[] = {
{"matchpkg", a_argument, NULL, 'p'},
{"matchcat", a_argument, NULL, 'c'},
{"matchmaint", a_argument, NULL, 'm'},
+ {"showarch", no_argument, NULL, 'A'},
{"imlate", no_argument, NULL, 'i'},
{"dropped", no_argument, NULL, 'd'},
{"needsstable", no_argument, NULL, 't'},
@@ -48,6 +49,7 @@ static const char * const qkeyword_opts_help[] = {
"match pkgname",
"match catname",
"match maintainer email from metadata.xml (slow)",
+ "show selected arch from profile configuration",
"list packages that can be marked stable for <arch>",
"list packages that have dropped keywords for <arch>",
"list packages that have ~arch versions, but no stable versions for <arch>",
@@ -818,19 +820,22 @@ qkeyword_traverse(tree_pkg_cb func, void *priv)
int qkeyword_main(int argc, char **argv)
{
- int i;
- char action = '\0';
+ int i;
+ char action = '\0';
+ char *pkg = NULL;
+ char *cat = NULL;
+ char *maint = NULL;
+ bool showarch = false;
qkeyword_data data;
- char *pkg = NULL;
- char *cat = NULL;
- char *maint = NULL;
data.fmt = NULL;
while ((i = GETOPT_LONG(QKEYWORD, qkeyword, "")) != -1) {
switch (i) {
- case 'p': pkg = optarg; break;
- case 'c': cat = optarg; break;
- case 'm': maint = optarg; break;
+ case 'p': pkg = optarg; break;
+ case 'c': cat = optarg; break;
+ case 'm': maint = optarg; break;
+ case 'A': showarch = true; break;
+ case 'F': data.fmt = optarg; break;
case 'i':
case 'd':
case 't':
@@ -844,9 +849,6 @@ int qkeyword_main(int argc, char **argv)
qkeyword_usage(EXIT_FAILURE);
action = i;
break;
- case 'F':
- data.fmt = optarg;
- break;
COMMON_GETOPTS_CASES(qkeyword)
}
@@ -860,6 +862,11 @@ int qkeyword_main(int argc, char **argv)
optind + 1 < argc)
qkeyword_usage(EXIT_FAILURE);
+ if (showarch) {
+ printf("%s\n", data.arch);
+ return EXIT_SUCCESS;
+ }
+
if (cat != NULL) {
data.qatom = atom_explode_cat(pkg == NULL ? "" : pkg, cat);
if (data.qatom == NULL) {