commit:     05e24fdd5fda7fdee37c7f48d398e15f3ba56514
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 15 09:35:57 2022 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Thu Dec 15 09:35:57 2022 +0000
URL:        https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=05e24fdd

qkeyword: add -A option to show the current arch

Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 man/qkeyword.1 |  8 +++++++-
 qkeyword.c     | 31 +++++++++++++++++++------------
 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) {

Reply via email to