summaryrefslogtreecommitdiff
path: root/settings/setup-package.el
diff options
context:
space:
mode:
Diffstat (limited to 'settings/setup-package.el')
-rw-r--r--settings/setup-package.el32
1 files changed, 32 insertions, 0 deletions
diff --git a/settings/setup-package.el b/settings/setup-package.el
new file mode 100644
index 0000000..b30a85f
--- /dev/null
+++ b/settings/setup-package.el
@@ -0,0 +1,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)