git.fiddlerwoaroof.com
tests/sample-git-objects/blob-912d31a-fixture
9d5bb297
 (in-package :fwoar.cl-git)
 
 (fw.lu:defun-ct batch-4 (bytes)
   (mapcar 'fwoar.bin-parser:be->int
           (serapeum:batches bytes 4)))
 
 (fw.lu:defun-ct batch-20 (bytes)
   (serapeum:batches bytes 20))
 
 (defmacro sym->plist (&rest syms)
   `(list ,@(loop for sym in syms
                  append (list (alexandria:make-keyword sym)
                               sym))))
 
 (defmacro inspect- (s form)
   `(let ((result ,form))
      (format ,s "~&~s (~{~s~^ ~})~%~4t~s~%"
              ',form
              ,(typecase form
                 (list `(list ',(car form) ,@(cdr form)))
                 (t `(list ,form)))
              result)
      result))
 
 (defun inspect-* (fn)
   (lambda (&rest args)
     (declare (dynamic-extent args))
     (inspect- *trace-output*
               (apply fn args))))
 
 (defun partition (char string &key from-end)
   (let ((pos (position char string :from-end from-end)))
     (if pos
 	      (list (subseq string 0 pos)
 	            (subseq string (1+ pos)))
 	      (list string
 	            nil))))
 
 (defun partition-subseq (subseq string &key from-end)
   (let ((pos (search subseq string :from-end from-end)))
     (if pos
 	      (list (subseq string 0 pos)
 	            (subseq string (+ (length subseq) pos)))
 	      (list string
 	            nil))))
 
 (serapeum:defalias ->sha-string
   (data-lens:<>1 (data-lens:over 'fwoar.bin-parser:byte-array-to-hex-string)
                  'batch-20))