changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate lisp/lib/cli/tools/pacman.lisp

changeset 698: 96958d3eb5b0
parent: 6359b351657a
author: Richard Westhaver <ellis@rwest.io>
date: Fri, 04 Oct 2024 22:04:59 -0400
permissions: -rw-r--r--
description: fixes
471
33b0614ee220 cli tools, added vc-bundle, vc-unbundle generics
Richard Westhaver <ellis@rwest.io>
parents: 388
diff changeset
1
 ;;; pacman.lisp --- Pacman Tools
33b0614ee220 cli tools, added vc-bundle, vc-unbundle generics
Richard Westhaver <ellis@rwest.io>
parents: 388
diff changeset
2
 
33b0614ee220 cli tools, added vc-bundle, vc-unbundle generics
Richard Westhaver <ellis@rwest.io>
parents: 388
diff changeset
3
 ;; Call Pacman from Lisp.
33b0614ee220 cli tools, added vc-bundle, vc-unbundle generics
Richard Westhaver <ellis@rwest.io>
parents: 388
diff changeset
4
 
33b0614ee220 cli tools, added vc-bundle, vc-unbundle generics
Richard Westhaver <ellis@rwest.io>
parents: 388
diff changeset
5
 ;;; Commentary:
33b0614ee220 cli tools, added vc-bundle, vc-unbundle generics
Richard Westhaver <ellis@rwest.io>
parents: 388
diff changeset
6
 
33b0614ee220 cli tools, added vc-bundle, vc-unbundle generics
Richard Westhaver <ellis@rwest.io>
parents: 388
diff changeset
7
 ;; Note that many of the pacman commands require sudo.
33b0614ee220 cli tools, added vc-bundle, vc-unbundle generics
Richard Westhaver <ellis@rwest.io>
parents: 388
diff changeset
8
 
33b0614ee220 cli tools, added vc-bundle, vc-unbundle generics
Richard Westhaver <ellis@rwest.io>
parents: 388
diff changeset
9
 ;;; Code:
33b0614ee220 cli tools, added vc-bundle, vc-unbundle generics
Richard Westhaver <ellis@rwest.io>
parents: 388
diff changeset
10
 (in-package :cli/tools/pacman)
33b0614ee220 cli tools, added vc-bundle, vc-unbundle generics
Richard Westhaver <ellis@rwest.io>
parents: 388
diff changeset
11
 
496
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 471
diff changeset
12
 (deferror pacman-error (simple-error error) ())
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 471
diff changeset
13
 
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 471
diff changeset
14
 (defun pacman-error (fmt &rest args)
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 471
diff changeset
15
   (error 'pacman-error :format-arguments args :format-control fmt))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 471
diff changeset
16
 
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 471
diff changeset
17
 (defparameter *pacman* (find-exe "pacman"))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 471
diff changeset
18
 
471
33b0614ee220 cli tools, added vc-bundle, vc-unbundle generics
Richard Westhaver <ellis@rwest.io>
parents: 388
diff changeset
19
 (defun run-pacman (&rest args)
496
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 471
diff changeset
20
   (let ((proc (sb-ext:run-program *pacman* (or args nil) :output :stream)))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 471
diff changeset
21
     (with-open-stream (s (sb-ext:process-output proc))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 471
diff changeset
22
       (loop for l = (read-line s nil nil)
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 471
diff changeset
23
             while l
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 471
diff changeset
24
             do (write-line l)))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 471
diff changeset
25
     (if (eq 0 (sb-ext:process-exit-code proc))
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 471
diff changeset
26
         nil
6359b351657a tmux controller, cli upgrades
Richard Westhaver <ellis@rwest.io>
parents: 471
diff changeset
27
         (pacman-error "Pacman command failed: ~A ~A" *pacman* (or args "")))))