emacs: Add "View map" action to 'size' popup.
* emacs/guix-command.el (guix-run-view-size-map): New function. (guix-command-additional-execute-arguments, guix-command-special-executors): Add entries for "View map" action.
This commit is contained in:
		
							parent
							
								
									99d7460d78
								
							
						
					
					
						commit
						6f05a24df3
					
				
					 1 changed files with 24 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -503,7 +503,10 @@ to be modified."
 | 
			
		|||
       :name "log" :char ?l :doc "View build log"))
 | 
			
		||||
    (("graph")
 | 
			
		||||
     ,(guix-command-make-argument
 | 
			
		||||
       :name "view" :char ?v :doc "View graph")))
 | 
			
		||||
       :name "view" :char ?v :doc "View graph"))
 | 
			
		||||
    (("size")
 | 
			
		||||
     ,(guix-command-make-argument
 | 
			
		||||
       :name "view" :char ?v :doc "View map")))
 | 
			
		||||
  "Alist of guix commands and additional 'execute' action arguments.")
 | 
			
		||||
 | 
			
		||||
(defun guix-command-execute-arguments (commands)
 | 
			
		||||
| 
						 | 
				
			
			@ -525,7 +528,9 @@ to be modified."
 | 
			
		|||
    (("build")
 | 
			
		||||
     ("log" . guix-run-view-build-log))
 | 
			
		||||
    (("graph")
 | 
			
		||||
     ("view" . guix-run-view-graph)))
 | 
			
		||||
     ("view" . guix-run-view-graph))
 | 
			
		||||
    (("size")
 | 
			
		||||
     ("view" . guix-run-view-size-map)))
 | 
			
		||||
  "Alist of guix commands and alists of special executers for them.
 | 
			
		||||
See also `guix-command-default-executors'.")
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -583,6 +588,23 @@ open the log file(s)."
 | 
			
		|||
        (guix-find-file graph-file)
 | 
			
		||||
      (error "Couldn't create a graph"))))
 | 
			
		||||
 | 
			
		||||
(defun guix-run-view-size-map (args)
 | 
			
		||||
  "Run 'guix ARGS ...' size command, and open the map file."
 | 
			
		||||
  (let* ((wished-map-file
 | 
			
		||||
          (cl-some (lambda (arg)
 | 
			
		||||
                     (and (string-match "--map-file=\\(.+\\)" arg)
 | 
			
		||||
                          (match-string 1 arg)))
 | 
			
		||||
                   args))
 | 
			
		||||
         (map-file (or wished-map-file (guix-png-file-name)))
 | 
			
		||||
         (args (if wished-map-file
 | 
			
		||||
                   args
 | 
			
		||||
                 (apply #'list
 | 
			
		||||
                        (car args)
 | 
			
		||||
                        (concat "--map-file=" map-file)
 | 
			
		||||
                        (cdr args)))))
 | 
			
		||||
    (guix-command-output args)
 | 
			
		||||
    (guix-find-file map-file)))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;;; Generating popups, actions, etc.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue