Show repository status.
This commit is contained in:
parent
7a91e8f4f9
commit
67da5d9be1
2 changed files with 33 additions and 15 deletions
|
@ -29,6 +29,7 @@
|
|||
util-git
|
||||
(
|
||||
git
|
||||
git-status
|
||||
)
|
||||
|
||||
(import scheme
|
||||
|
@ -79,19 +80,21 @@
|
|||
|
||||
;; Returns a dictionary of unknown, modified, deleted and added files
|
||||
(define (git-status repo)
|
||||
(let loop ((lines ((git repo) 'status '--porcelain))
|
||||
(res (make-ldict)))
|
||||
(if (null? lines)
|
||||
res
|
||||
(let* ((line (car lines))
|
||||
(st (substring line 0 2))
|
||||
(fname (substring line 4))
|
||||
(status (or (assoc st git-status-types)
|
||||
'unknown)))
|
||||
(loop (cdr lines)
|
||||
(ldict-set res
|
||||
status
|
||||
(cons fname
|
||||
(ldict-ref res status '()))))))))
|
||||
(let* ((lines ((git repo) 'status '--porcelain))
|
||||
(clean? (null? lines)))
|
||||
(let loop ((lines lines)
|
||||
(res (make-ldict `((clean . ,clean?)))))
|
||||
(if (null? lines)
|
||||
res
|
||||
(let* ((line (car lines))
|
||||
(st (substring line 0 2))
|
||||
(fname (substring line 4))
|
||||
(status (or (assoc st git-status-types)
|
||||
'unknown)))
|
||||
(loop (cdr lines)
|
||||
(ldict-set res
|
||||
status
|
||||
(cons fname
|
||||
(ldict-ref res status '())))))))))
|
||||
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue