105 lines
3.4 KiB
EmacsLisp
105 lines
3.4 KiB
EmacsLisp
(setq jwall:package-list '(
|
|
company
|
|
go-mode
|
|
go-eldoc
|
|
go-rename
|
|
rust-mode
|
|
racer
|
|
flycheck-rust
|
|
company-go
|
|
clojure-mode
|
|
clojure-test-mode
|
|
color-theme
|
|
csharp-mode
|
|
ess
|
|
evil
|
|
flycheck
|
|
flymake
|
|
highlight-80+
|
|
js2-mode
|
|
json
|
|
jtags
|
|
log4j-mode
|
|
magit
|
|
monky
|
|
melpa
|
|
multi-web-mode
|
|
omnisharp
|
|
paredit
|
|
scad-mode
|
|
slime
|
|
slime-repl
|
|
swank-clojure
|
|
tex-math-preview
|
|
yaml-mode
|
|
org-bullets
|
|
))
|
|
|
|
(condition-case nil
|
|
(progn
|
|
(add-to-list 'package-archives
|
|
'("marmalade" . "http://marmalade-repo.org/packages/"))
|
|
(add-to-list 'package-archives
|
|
'("melpa" . "http://melpa.org/packages/"))
|
|
(package-initialize)
|
|
(package-refresh-contents))
|
|
(error nil))
|
|
|
|
(defun jwall:clear-install-log ()
|
|
(save-excursion
|
|
(set-buffer (get-buffer-create "*MY-INSTALLS*"))
|
|
(erase-buffer)))
|
|
|
|
(defmacro jwall:log-install (fmt &rest args)
|
|
`(save-excursion
|
|
(set-buffer (get-buffer-create "*MY-INSTALLS*"))
|
|
(let ((msg (cond ((or (null ',args)
|
|
(<= (safe-length ',args) 0)) ,fmt)
|
|
(t (format ,fmt ,@args)))))
|
|
(insert msg)
|
|
(insert "\n")
|
|
(when (called-interactively-p)
|
|
(message msg)))))
|
|
|
|
(defun jwall:elpa-installed-list ()
|
|
(interactive)
|
|
(when (called-interactively-p)
|
|
(message (format "package list: %s" package-alist)))
|
|
package-alist)
|
|
|
|
(defun jwall:elpa-installed-p (p)
|
|
(interactive "Spackage-name: ")
|
|
(when (called-interactively-p)
|
|
(message (format "package %s install status: %s" p
|
|
(or (assq p package-alist) nil))))
|
|
(or (assq p package-alist) nil))
|
|
|
|
(defun jwall:maybe-install-package (p)
|
|
(interactive "Spackage-name: ")
|
|
(cond ((jwall:elpa-installed-p p)
|
|
(jwall:log-install "package %s already installed" p))
|
|
(t (progn
|
|
(jwall:log-install "package %s installing" p)
|
|
(condition-case nil
|
|
(package-install p)
|
|
(error nil))
|
|
(jwall:log-install "package %s installed: %s" p
|
|
(jwall:elpa-installed-p p))))))
|
|
|
|
(defun jwall:install-package-list (p-lst)
|
|
"Install a list of packages using ELPA."
|
|
(dolist (pkg p-lst)
|
|
(condition-case nil
|
|
(jwall:maybe-install-package pkg)
|
|
(error nil))))
|
|
|
|
(defun jwall:install-all-packages ()
|
|
"Install all of my standard ELPA packages in a new setup."
|
|
(interactive)
|
|
(jwall:clear-install-log)
|
|
(jwall:log-install "Building world...")
|
|
(jwall:install-package-list jwall:package-list)
|
|
(jwall:log-install "Finished Build"))
|
|
|
|
(jwall:install-all-packages)
|