ui: Improve output appearance when listing generations.
* guix/ui.scm (display-profile-content-diff): Use pretty-print-table to format output. (display-profile-content): Likewise. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
This commit is contained in:
		
							parent
							
								
									481d660527
								
							
						
					
					
						commit
						423f5f867c
					
				
					 1 changed files with 15 additions and 12 deletions
				
			
		
							
								
								
									
										25
									
								
								guix/ui.scm
									
										
									
									
									
								
							
							
						
						
									
										25
									
								
								guix/ui.scm
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -16,6 +16,7 @@
 | 
			
		|||
;;; Copyright © 2019, 2021 Simon Tournier <zimon.toutoune@gmail.com>
 | 
			
		||||
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
 | 
			
		||||
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
			
		||||
;;; Copyright © 2018 Steve Sprang <scs@stevesprang.com>
 | 
			
		||||
;;;
 | 
			
		||||
;;; This file is part of GNU Guix.
 | 
			
		||||
;;;
 | 
			
		||||
| 
						 | 
				
			
			@ -1889,10 +1890,10 @@ DURATION-RELATION with the current time."
 | 
			
		|||
  (define (equal-entry? first second)
 | 
			
		||||
    (string= (manifest-entry-item first) (manifest-entry-item second)))
 | 
			
		||||
 | 
			
		||||
  (define (display-entry entry prefix)
 | 
			
		||||
  (define (make-row entry prefix)
 | 
			
		||||
    (match entry
 | 
			
		||||
      (($ <manifest-entry> name version output location _)
 | 
			
		||||
       (format #t " ~a ~a\t~a\t~a\t~a~%" prefix name version output location))))
 | 
			
		||||
       (list (format #f " ~a ~a" prefix name) version output location))))
 | 
			
		||||
 | 
			
		||||
  (define (list-entries number)
 | 
			
		||||
    (manifest-entries (profile-manifest (generation-file-name profile number))))
 | 
			
		||||
| 
						 | 
				
			
			@ -1903,8 +1904,8 @@ DURATION-RELATION with the current time."
 | 
			
		|||
                  equal-entry? (list-entries new) (list-entries old)))
 | 
			
		||||
          (removed (lset-difference
 | 
			
		||||
                    equal-entry? (list-entries old) (list-entries new))))
 | 
			
		||||
      (for-each (cut display-entry <> "+") added)
 | 
			
		||||
      (for-each (cut display-entry <> "-") removed)
 | 
			
		||||
      (pretty-print-table (append (map (cut make-row <> "+") added)
 | 
			
		||||
                                  (map (cut make-row <> "-") removed)))
 | 
			
		||||
      (newline)))
 | 
			
		||||
 | 
			
		||||
  (display-diff profile gen1 gen2))
 | 
			
		||||
| 
						 | 
				
			
			@ -1932,15 +1933,17 @@ already taken."
 | 
			
		|||
(define (display-profile-content profile number)
 | 
			
		||||
  "Display the packages in PROFILE, generation NUMBER, in a human-readable
 | 
			
		||||
way."
 | 
			
		||||
  (for-each (match-lambda
 | 
			
		||||
              (($ <manifest-entry> name version output location _)
 | 
			
		||||
               (format #t "  ~a\t~a\t~a\t~a~%"
 | 
			
		||||
                       name version output location)))
 | 
			
		||||
 | 
			
		||||
  (define entry->row
 | 
			
		||||
    (match-lambda
 | 
			
		||||
      (($ <manifest-entry> name version output location _)
 | 
			
		||||
       (list (string-append "  " name) version output location))))
 | 
			
		||||
 | 
			
		||||
  (let* ((manifest (profile-manifest (generation-file-name profile number)))
 | 
			
		||||
         (entries  (manifest-entries manifest))
 | 
			
		||||
         (rows     (map entry->row entries)))
 | 
			
		||||
    ;; Show most recently installed packages last.
 | 
			
		||||
            (reverse
 | 
			
		||||
             (manifest-entries
 | 
			
		||||
              (profile-manifest (generation-file-name profile number))))))
 | 
			
		||||
    (pretty-print-table (reverse rows))))
 | 
			
		||||
 | 
			
		||||
(define (display-generation-change previous current)
 | 
			
		||||
  (format #t (G_ "switched from generation ~a to ~a~%") previous current))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue