From c40fc712dec93299657e916907bc603d30178327 Mon Sep 17 00:00:00 2001 Message-Id: From: Julien Lepiller Date: Thu, 29 Dec 2022 19:20:34 +0100 Subject: [PATCH] guix: Support showing status in parallel. * guix/status.scm (build-status): Add `last-daemon-line` field. (build): Add `last-line` and `start` fields. (update-build): Record partial lines (not ending with \n) in the last-line field of the new build or status record. (print-build-event): Always print status of all current builds and downloads at the end. Update all status lines. --- guix/status.scm | 358 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 245 insertions(+), 113 deletions(-) diff --git a/guix/status.scm b/guix/status.scm index 2c69f49fb5..5eb3ebc46b 100644 --- a/guix/status.scm +++ b/guix/status.scm @@ -49,6 +49,7 @@ (define-module (guix status) build-status-downloading build-status-builds-completed build-status-downloads-completed + build-status-last-daemon-line build? build @@ -57,6 +58,8 @@ (define-module (guix status) build-log-file build-phase build-completion + build-start + build-last-line download? download @@ -100,11 +103,13 @@ (define-record-type* build-status make-build-status (builds-completed build-status-builds-completed ;list of (default '())) (downloads-completed build-status-downloads-completed ;list of - (default '()))) + (default '())) + (last-daemon-line build-status-last-daemon-line ;string + (default ""))) ;; On-going or completed build. (define-immutable-record-type - (%build derivation id system log-file phase completion) + (%build derivation id system log-file phase completion start last-line) build? (derivation build-derivation) ;string (.drv file name) (id build-id) ;#f | integer @@ -113,11 +118,17 @@ (define-immutable-record-type (phase build-phase ;#f | symbol set-build-phase) (completion build-completion ;#f | integer (percentage) - set-build-completion)) + set-build-completion) + (start build-start ;