changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / lisp/lib/cli/tools/cargo.lisp

changeset 698: 96958d3eb5b0
parent: f9279a1f2347
author: Richard Westhaver <ellis@rwest.io>
date: Fri, 04 Oct 2024 22:04:59 -0400
permissions: -rw-r--r--
description: fixes
1 ;;; cargo.lisp --- Cargo Tools
2 
3 ;;
4 
5 ;;; Code:
6 (in-package :cli/tools/cargo)
7 
8 (deferror cargo-error (simple-error error) ())
9 
10 (defun cargo-error (fmt &rest args)
11  (error 'cargo-error :format-arguments args :format-control fmt))
12 
13 (defparameter *cargo* (find-exe "cargo"))
14 
15 (defun run-cargo (&rest args)
16  (let ((proc (sb-ext:run-program *cargo* (or args nil) :output :stream)))
17  (with-open-stream (s (sb-ext:process-output proc))
18  (loop for l = (read-line s nil nil)
19  while l
20  do (write-line l)))
21  (if (eq 0 (sb-ext:process-exit-code proc))
22  nil
23  (cargo-error "CARGO command failed: ~A ~A" *cargo* (or args "")))))