Files
emacs-config/bin/emacs-magit

45 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# Launch Emacs in terminal mode with Magit git interface
# Accepts optional repository path argument
if [ $# -eq 0 ]; then
# No arguments, use current directory
EMACS_NO_DESKTOP=1 emacs -nw --eval "(progn
(require 'package)
(package-initialize)
(unless (package-installed-p 'magit)
(package-refresh-contents)
(package-install 'magit))
(require 'magit)
;; Quit Emacs when magit status buffer is killed
(add-hook 'magit-status-mode-hook
(lambda ()
(add-hook 'kill-buffer-hook
(lambda ()
(when (eq major-mode 'magit-status-mode)
(kill-emacs)))
nil t)))
(magit-status))"
else
# Use specified directory
cd "$1" 2>/dev/null || {
echo "Error: Cannot access directory $1"
exit 1
}
EMACS_NO_DESKTOP=1 emacs -nw --eval "(progn
(require 'package)
(package-initialize)
(unless (package-installed-p 'magit)
(package-refresh-contents)
(package-install 'magit))
(require 'magit)
;; Quit Emacs when magit status buffer is killed
(add-hook 'magit-status-mode-hook
(lambda ()
(add-hook 'kill-buffer-hook
(lambda ()
(when (eq major-mode 'magit-status-mode)
(kill-emacs)))
nil t)))
(magit-status))"
fi