commit: a7269e48f4961afcc8bc5f0b2d426f645612e973 Author: Fabian Groffen <grobian <AT> gentoo <DOT> org> AuthorDate: Fri Dec 27 21:13:59 2019 +0000 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org> CommitDate: Fri Dec 27 21:13:59 2019 +0000 URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=a7269e48
qlop: report running over estimated time basically try saying something useful, instead of unknown Bug: https://bugs.gentoo.org/701386 Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org> qlop.c | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/qlop.c b/qlop.c index 634431a..3120d85 100644 --- a/qlop.c +++ b/qlop.c @@ -903,7 +903,9 @@ static int do_emerge_log( if (pkg != NULL) { maxtime = pkg->time / pkg->cnt; if (elapsed >= maxtime) { - maxtime = elapsed >= pkg->tbegin ? 0 : pkg->tbegin; + maxtime = pkg->tbegin; + if (elapsed >= maxtime) + maxtime -= elapsed; isMax = true; } } @@ -928,12 +930,15 @@ static int do_emerge_log( fmt_date(flags, pkgw->tbegin, 0), atom_format(flags->fmt, pkgw->atom)); } - printf("...%s ETA: %s%s\n", - p == NULL ? "" : p, - maxtime == 0 ? "unknown" : - fmt_elapsedtime(flags, maxtime - elapsed), - maxtime > 0 && verbose ? - isMax ? " (longest run)" : " (average run)" : ""); + if (maxtime < 0) + printf("... +%s\n", fmt_elapsedtime(flags, -maxtime)); + else + printf("...%s ETA: %s%s\n", + p == NULL ? "" : p, + maxtime == 0 ? "unknown" : + fmt_elapsedtime(flags, maxtime - elapsed), + maxtime > 0 && verbose ? + isMax ? " (longest run)" : " (average run)" : ""); } clear_set(pkgs_seen); array_for_each(unmerge_matches, i, pkgw) { @@ -957,7 +962,9 @@ static int do_emerge_log( if (pkg != NULL) { maxtime = pkg->time / pkg->cnt; if (elapsed >= maxtime) { - maxtime = elapsed >= pkg->tbegin ? 0 : pkg->tbegin; + maxtime = pkg->tbegin; + if (elapsed >= maxtime) + maxtime -= elapsed; isMax = true; } } @@ -972,11 +979,14 @@ static int do_emerge_log( fmt_date(flags, pkgw->tbegin, 0), atom_format(flags->fmt, pkgw->atom)); } - printf("... ETA: %s%s\n", - maxtime == 0 ? "unknown" : - fmt_elapsedtime(flags, maxtime - elapsed), - maxtime > 0 && verbose ? - isMax ? " (longest run)" : " (average run)" : ""); + if (maxtime < 0) + printf("... +%s\n", fmt_elapsedtime(flags, -maxtime)); + else + printf("... ETA: %s%s\n", + maxtime == 0 ? "unknown" : + fmt_elapsedtime(flags, maxtime - elapsed), + maxtime > 0 && verbose ? + isMax ? " (longest run)" : " (average run)" : ""); } free_set(pkgs_seen); } else if (flags->do_average) {
