summaryrefslogtreecommitdiff
path: root/settings/setup-package.el
blob: b30a85fca120d952a7170b6d6b774a2e967fdcb1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
(require 'package)
;; Taken from magnars setup-package.el
;; https://github.com/magnars/.emacs.d/blob/master/settings/setup-package.el
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(add-to-list 'package-archives '("melpa-stable" . "http://stable.melpa.org/packages/") t)
(package-initialize)

(unless (file-exists-p "~/.emacs.d/elpa/archives/melpa")
  (package-refresh-contents))

;; install dash once if it's not already installed
(when (not (package-installed-p 'dash)) (package-install 'dash))
(require 'dash)
(defun packages-install (packages)
  (--each packages
	  (when (not (package-installed-p it))
	    (package-install it)))
  (delete-other-windows))

(defun require-package (package &optional min-version no-refresh)
    "Install given PACKAGE, optionally requiring MIN-VERSION.
If NO-REFRESH is non-nil, the available package lists will not be
re-downloaded in order to locate PACKAGE."
    (if (package-installed-p package min-version)
	t
      (if (or (assoc package package-archive-contents) no-refresh)
	  (package-install package)
	(progn
	  (package-refresh-contents)
	  (require-package package min-version t)))))

(provide 'setup-package)