From: "Fabian Groffen" <grobian@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/portage-utils:master commit in: /, man/
Date: Tue, 10 Sep 2019 18:25:13 +0000 (UTC) [thread overview]
Message-ID: <1568139711.3dc607a8a6cfd3bafbc2f10d9a7c3aae90c3a757.grobian@gentoo> (raw)
commit: 3dc607a8a6cfd3bafbc2f10d9a7c3aae90c3a757
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 10 18:21:51 2019 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Tue Sep 10 18:21:51 2019 +0000
URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=3dc607a8
qlop: add mode to print last run in a similar way like emerge(1) does
For example, the output could be like this, showing upgrade information:
% ./qlop -E -t
U app-shells/bash-5.0_p11 [5.0_p9-r0]: 2′38″
U app-admin/eselect-1.4.15 [1.4.14-r0]: 19s
U sys-libs/talloc-2.3.0 [2.2.0-r0]: 1′56″
U app-portage/prefix-toolkit-5 [4-r0]: 10s
U dev-python/cryptography-2.7 [2.6.1-r0]: 1′59″
U net-dns/bind-tools-9.14.5 [9.14.4-r0]: 4′17″
R dev-python/sphinxcontrib-applehelp-1.0.1: 28s
R dev-python/sphinxcontrib-devhelp-1.0.1: 27s
R dev-python/sphinxcontrib-jsmath-1.0.1: 25s
R dev-python/sphinxcontrib-htmlhelp-1.0.2: 28s
R dev-python/sphinxcontrib-serializinghtml-1.1.3: 28s
R dev-python/sphinxcontrib-qthelp-1.0.2: 28s
U dev-python/sphinx-2.0.1 [1.7.5-r1]: 1′13″
U net-mail/notmuch-0.29.1-r1 [0.28.4-r0]: 1′00″
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
man/qlop.1 | 5 ++++-
qlop.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 52 insertions(+), 2 deletions(-)
diff --git a/man/qlop.1 b/man/qlop.1
index baa5bf5..de1e525 100644
--- a/man/qlop.1
+++ b/man/qlop.1
@@ -1,5 +1,5 @@
.\" generated by mkman.py, please do NOT edit!
-.TH qlop "1" "Jul 2019" "Gentoo Foundation" "qlop"
+.TH qlop "1" "Sep 2019" "Gentoo Foundation" "qlop"
.SH NAME
qlop \- emerge log analyzer
.SH SYNOPSIS
@@ -65,6 +65,9 @@ Show autoclean unmerge history.
\fB\-s\fR, \fB\-\-sync\fR
Show sync history.
.TP
+\fB\-E\fR, \fB\-\-emerge\fR
+Show last merge like how emerge(1) -v would show it.
+.TP
\fB\-e\fR, \fB\-\-endtime\fR
Report time at which the operation finished (iso started).
.TP
diff --git a/qlop.c b/qlop.c
index 243c8b6..3cc3367 100644
--- a/qlop.c
+++ b/qlop.c
@@ -24,7 +24,7 @@
#define QLOP_DEFAULT_LOGFILE "emerge.log"
-#define QLOP_FLAGS "ctaHMmuUslerd:f:w:F:" COMMON_FLAGS
+#define QLOP_FLAGS "ctaHMmuUsElerd:f:w:F:" COMMON_FLAGS
static struct option const qlop_long_opts[] = {
{"summary", no_argument, NULL, 'c'},
{"time", no_argument, NULL, 't'},
@@ -35,6 +35,7 @@ static struct option const qlop_long_opts[] = {
{"unmerge", no_argument, NULL, 'u'},
{"autoclean", no_argument, NULL, 'U'},
{"sync", no_argument, NULL, 's'},
+ {"emerge", no_argument, NULL, 'E'},
{"endtime", no_argument, NULL, 'e'},
{"running", no_argument, NULL, 'r'},
{"date", a_argument, NULL, 'd'},
@@ -54,6 +55,7 @@ static const char * const qlop_opts_help[] = {
"Show unmerge history",
"Show autoclean unmerge history",
"Show sync history",
+ "Show last merge like how emerge(1) -v would show it",
"Report time at which the operation finished (iso started)",
"Show current emerging packages",
"Limit selection to this time (1st -d is start, 2nd -d is end)",
@@ -85,6 +87,7 @@ struct qlop_mode {
char do_machine:1;
char do_endtime:1;
char show_lastmerge:1;
+ char show_emerge:1;
const char *fmt;
};
@@ -334,6 +337,7 @@ static int do_emerge_log(
time_t elapsed;
depend_atom *atom;
depend_atom *atomw;
+ depend_atom *upgrade_atom = NULL;
DECLARE_ARRAY(merge_matches);
DECLARE_ARRAY(merge_averages);
DECLARE_ARRAY(unmerge_matches);
@@ -638,6 +642,34 @@ static int do_emerge_log(
flags->do_time ? ": " : "",
flags->do_time ?
fmt_elapsedtime(flags, elapsed) : "");
+ } else if (flags->show_emerge) {
+ int state = NOT_EQUAL;
+ if (upgrade_atom != NULL)
+ state = atom_compare(pkgw->atom, upgrade_atom);
+ switch (state) {
+ /* "NRUD " */
+ case EQUAL:
+ printf(" %sR%s ", YELLOW, NORM);
+ break;
+ case NOT_EQUAL:
+ printf("%sN%s ", GREEN, NORM);
+ break;
+ case NEWER:
+ printf(" %sU%s ", BLUE, NORM);
+ break;
+ case OLDER:
+ printf(" %sU%sD%s ", BLUE, DKBLUE, NORM);
+ break;
+ }
+ printf("%s", atom_format(flags->fmt, pkgw->atom));
+ if (state == NEWER || state == OLDER)
+ printf(" %s[%s%s%s]%s", DKBLUE, NORM,
+ atom_format("%[PVR]", upgrade_atom),
+ DKBLUE, NORM);
+ if (flags->do_time)
+ printf(": %s\n", fmt_elapsedtime(flags, elapsed));
+ else
+ printf("\n");
} else if (flags->do_time) {
printf("%s >>> %s: %s\n",
fmt_date(flags, pkgw->tbegin, tstart),
@@ -675,6 +707,14 @@ static int do_emerge_log(
if (atom == NULL)
continue;
+ if (p[-20] == ' ' && flags->show_emerge)
+ {
+ if (upgrade_atom != NULL)
+ atom_implode(upgrade_atom);
+ upgrade_atom = atom;
+ continue;
+ }
+
/* see if we need this atom */
atomw = NULL;
array_for_each(atoms, i, atomw) {
@@ -942,6 +982,7 @@ int qlop_main(int argc, char **argv)
m.do_machine = 0;
m.do_endtime = 0;
m.show_lastmerge = 0;
+ m.show_emerge = 0;
m.fmt = NULL;
while ((ret = GETOPT_LONG(QLOP, qlop, "")) != -1) {
@@ -953,6 +994,12 @@ int qlop_main(int argc, char **argv)
case 'u': m.do_unmerge = 1; break;
case 'U': m.do_autoclean = 1; break;
case 's': m.do_sync = 1; break;
+ case 'E': m.do_merge = 1;
+ m.do_unmerge = 1;
+ m.do_autoclean = 1;
+ m.show_lastmerge = 1;
+ m.show_emerge = 1;
+ verbose = 1; break;
case 'r': m.do_running = 1; break;
case 'a': m.do_average = 1; break;
case 'c': m.do_summary = 1; break;
next reply other threads:[~2019-09-10 18:25 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-10 18:25 Fabian Groffen [this message]
-- strict thread matches above, loose matches on Subject: below --
2020-05-02 8:45 [gentoo-commits] proj/portage-utils:master commit in: /, man/ Fabian Groffen
2020-01-06 15:03 Fabian Groffen
2019-12-14 17:01 Fabian Groffen
2019-11-24 12:29 Fabian Groffen
2019-11-09 10:13 Fabian Groffen
2019-10-27 12:22 Fabian Groffen
2019-09-28 13:19 Fabian Groffen
2019-07-14 13:09 Fabian Groffen
2019-07-14 10:21 Fabian Groffen
2019-07-14 10:21 Fabian Groffen
2019-07-14 10:21 Fabian Groffen
2019-07-14 10:21 Fabian Groffen
2019-05-20 10:46 Fabian Groffen
2016-03-28 4:53 Mike Frysinger
2016-02-22 20:37 Mike Frysinger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1568139711.3dc607a8a6cfd3bafbc2f10d9a7c3aae90c3a757.grobian@gentoo \
--to=grobian@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox