Add git interface function
[candle] / src / main / git.lisp
1 (in-package #:candle)
2
3 (defvar *git-location* "/usr/bin/git")
4
5 (defun git (project cmd &rest args)
6  (let
7   ((err nil)
8    (out nil)
9    (code nil))
10   (setf
11    err
12    (with-output-to-string (err-str)
13     (setf out
14      (with-output-to-string (out-str)
15       (setf code
16        (sb-ext:process-exit-code
17         (sb-ext:run-program *git-location*
18          (append
19           (list "-C" (if project (project-dir project) *candle-dir*))
20           (list cmd)
21           args)
22          :output out-str
23          :error err-str
24          :wait t)))))))
25   (values (zerop code) code out err)))