56 lines
2.3 KiB
EmacsLisp
56 lines
2.3 KiB
EmacsLisp
(defun install-emacs-startkit (name directory)
|
|
(let ((startkit-info
|
|
'((doom-emacs .
|
|
(lambda (dir)
|
|
(concat "git clone git@github.com:shen390s/doom-emacs.git "
|
|
dir " && cd " dir " && "
|
|
" cp init.example.el init.el && "
|
|
" make install ")))
|
|
(frontmacs .
|
|
(lambda (dir)
|
|
(concat "mkdir -p " dir " && cd " dir " && "
|
|
"wget https://raw.githubusercontent.com/shen390s/frontmacs/master/scripts/init-frontmacs.el && "
|
|
"echo \"(load (expand-file-name \\\"init-frontmacs.el\\\" user-emacs-directory))\" >>init.el")))
|
|
(graphane .
|
|
(lambda (dir)
|
|
(concat "git clone git@github.com:shen390s/dotfiles-emacs.git " dir)))
|
|
(ohai-emacs .
|
|
(lambda (dir)
|
|
(concat "git clone git@github.com:shen390s/ohai-emacs.git " dir)))
|
|
(prelude .
|
|
(lambda (dir)
|
|
(concat "git clone git@github.com:shen390s/prelude.git " dir)))
|
|
(spacemacs .
|
|
(lambda (dir)
|
|
(concat "git clone https://github.com/syl20bnr/spacemacs.git " dir))))))
|
|
(let ((installer (funcall (cdr (assoc (intern name) startkit-info)) directory)))
|
|
(let ((output (shell-command-to-string installer)))
|
|
(message "%s" output)))))
|
|
|
|
(setq emacs-start-kit
|
|
(let ((start-kit (getenv "EMACS_STARTKIT")))
|
|
(if start-kit
|
|
start-kit
|
|
"spacemacs")))
|
|
|
|
(setq emacs-config-name emacs-start-kit)
|
|
|
|
(setq emacs-config-directory
|
|
(let ((config-dir (getenv "EMACS_CONFIG_DIR")))
|
|
(if config-dir
|
|
(concat config-dir "/" emacs-config-name "/")
|
|
(concat (substitute-in-file-name "~/.config/emacs/")
|
|
emacs-config-name "/"))))
|
|
|
|
(setq user-emacs-directory emacs-config-directory)
|
|
|
|
(setq emacs-init-file
|
|
(expand-file-name "init.el" user-emacs-directory))
|
|
|
|
(if (not (file-exists-p emacs-init-file))
|
|
(install-emacs-startkit emacs-start-kit emacs-config-directory))
|
|
|
|
(let ((init-file (expand-file-name "init.el" user-emacs-directory)))
|
|
(when (file-exists-p init-file)
|
|
(load-file init-file)))
|