changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / 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
1 ;;; pacman.lisp --- Pacman Tools
2 
3 ;; Call Pacman from Lisp.
4 
5 ;;; Commentary:
6 
7 ;; Note that many of the pacman commands require sudo.
8 
9 ;;; Code:
10 (in-package :cli/tools/pacman)
11 
12 (deferror pacman-error (simple-error error) ())
13 
14 (defun pacman-error (fmt &rest args)
15  (error 'pacman-error :format-arguments args :format-control fmt))
16 
17 (defparameter *pacman* (find-exe "pacman"))
18 
19 (defun run-pacman (&rest args)
20  (let ((proc (sb-ext:run-program *pacman* (or args nil) :output :stream)))
21  (with-open-stream (s (sb-ext:process-output proc))
22  (loop for l = (read-line s nil nil)
23  while l
24  do (write-line l)))
25  (if (eq 0 (sb-ext:process-exit-code proc))
26  nil
27  (pacman-error "Pacman command failed: ~A ~A" *pacman* (or args "")))))