diff --git a/modules/prelude-packages.el b/modules/prelude-packages.el index 2d4c6b8..4a1ed29 100644 --- a/modules/prelude-packages.el +++ b/modules/prelude-packages.el @@ -38,18 +38,24 @@ '("marmalade" . "http://marmalade-repo.org/packages/") t) (package-initialize) -;; check for new packages (package versions) -(message "%s" "Emacs Prelude is now refreshing its package database...") -(package-refresh-contents) -(message "%s" " done.") - (defvar prelude-packages - '(auctex clojure-mode coffee-mode deft gist groovy-mode haml-mode + '(auctex clojure-mode coffee-mode deft full-ack gist groovy-mode haml-mode haskell-mode inf-ruby markdown-mode paredit projectile python sass-mode rainbow-mode scss-mode solarized-theme yaml-mode yari zenburn-theme) "A list of packages to ensure are installed at launch.") +(defun prelude-packages-installled-p () + (loop for p in prelude-packages + when (package-installed-p p) do (return nil) + finally (return t))) + +(unless prelude-packages-installed-p + ;; check for new packages (package versions) + (message "%s" "Emacs Prelude is now refreshing its package database...") + (package-refresh-contents) + (message "%s" " done.")) + (dolist (p prelude-packages) (when (not (package-installed-p p)) (package-install p)))