doomemacs/lisp/lib/git.el

17 lines
504 B
EmacsLisp
Raw Normal View History

;;; lisp/lib/git.el -*- lexical-binding: t; -*-
;;; Commentary:
;;; Code:
;;;###autoload
(defun doom-git-toplevel (&rest segments)
"Return the path to the current repo's root."
(cl-destructuring-bind (code . output)
(doom-call-process "git" "rev-parse" "--show-toplevel")
(if (zerop code)
(apply #'file-name-concat output segments)
;; TODO throw stderr as error
(user-error "Not in a git repo: %s" default-directory))))
(provide 'doom-lib '(git))
;;; git.el ends here