First setup with git cli utility
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
#lang racket/base
|
||||
|
||||
(require "git-provider.rkt"
|
||||
racket/string
|
||||
|
||||
)
|
||||
|
||||
(provide cmd-git-status
|
||||
cmd-git-add
|
||||
)
|
||||
|
||||
(define (cmd-git-status args)
|
||||
(let ((output (run-git '(status -s))))
|
||||
(let-values (((result out) (git-out 'status output)))
|
||||
(if result
|
||||
(map (λ (line)
|
||||
(let* ((state (string->symbol (string-trim (substring line 0 2))))
|
||||
(file (string-trim (substring line 3))))
|
||||
(cond
|
||||
([eq? state '??] (list 'new file))
|
||||
([eq? state 'M] (list 'modified file))
|
||||
([eq? state 'A] (list 'added file))
|
||||
([eq? state 'D] (list 'deleted file))
|
||||
([eq? state 'AM] (list 'modified-added file))
|
||||
([eq? state 'AD] (list 'deleted-added file))
|
||||
(else
|
||||
(git-error 'status "Unexpected state" state))
|
||||
)
|
||||
))
|
||||
out)
|
||||
(git-error 'status "Error" out)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(define (cmd-git-add args)
|
||||
(let ((output (run-git (cons 'add args))))
|
||||
(let-values (((result out) (git-out 'add output)))
|
||||
(if result
|
||||
(begin
|
||||
(git-displ out)
|
||||
result)
|
||||
(git-error 'add "Error" out)))))
|
||||
|
||||
Reference in New Issue
Block a user