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 ""))))) |