Skip to content
Browse files

fixed #138 - fixed auto-install's behaviour

  • Loading branch information...
1 parent 9fcc478 commit 5b38ad5d8c5947d551b49bf7b1c90c5c011000b7 @bbatsov bbatsov committed Apr 23, 2012
Showing with 46 additions and 81 deletions.
  1. +0 −1 init.el
  2. +0 −71 prelude/prelude-auto-install.el
  3. +46 −9 prelude/prelude-packages.el
View
1 init.el
@@ -61,7 +61,6 @@ ELPA (or MELPA).")
(require 'prelude-mode)
(require 'prelude-editor)
(require 'prelude-global-keybindings)
-(require 'prelude-auto-install)
;; OSX specific settings
(when (eq system-type 'darwin)
View
71 prelude/prelude-auto-install.el
@@ -1,71 +0,0 @@
-;;; prelude-auto-install.el --- Emacs Prelude: auto-install required packages
-;;
-;; Copyright (c) 2011-2012 Bozhidar Batsov
-;;
-;; Author: Bozhidar Batsov <bozhidar@batsov.com>
-;; URL: http://batsov.com/emacs-prelude
-;; Version: 1.0.0
-;; Keywords: convenience
-
-;; This file is not part of GNU Emacs.
-
-;;; Commentary:
-
-;; A simple mechanism to automatically install missing packages.
-
-;;; License:
-
-;; This program is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU General Public License
-;; as published by the Free Software Foundation; either version 3
-;; of the License, or (at your option) any later version.
-;;
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-;;
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Code:
-
-
-(defmacro prelude-auto-install (ext mode)
- `(unless (fboundp ',mode)
- (add-to-list 'auto-mode-alist
- `(,ext . (lambda ()
- (package-install ',mode)
- (,mode))))))
-
-(defvar prelude-auto-install-alist
- '(("\\.markdown\\'" . markdown-mode)
- ("\\.md\\'" . markdown-mode)
- ("\\.haml\\'" . haml-mode)
- ("\\.scss\\'" . scss-mode)
- ("\\.sass\\'" . sass-mode)
- ("\\.groovy\\'" . groovy-mode)
- ("\\.yml\\'" . yaml-mode)
- ("\\.php\\'" . php-mode)
- ("\\.hs\\'" . haskell-mode)
- ("\\.less\\'" . less-css-mode)
- ("\\.lua\\'" . lua-mode)
- ("\\.coffee\\'" . coffee-mode)
- ("\\.erl\\'" . erlang-mode)
- ("\\.feature\\'" . feature-mode)))
-
-;; markdown-mode doesn't have autoloads for the auto-mode-alist
-;; so we add them manually if it's already installed
-(when (package-installed-p 'markdown-mode)
- (add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode))
- (add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode)))
-
-(dolist (entry prelude-auto-install-alist)
- (let ((ext (car entry))
- (mode (cdr entry)))
- (prelude-auto-install ext mode)))
-
-(provide 'prelude-auto-install)
-;;; prelude-auto-install.el ends here
View
55 prelude/prelude-packages.el
@@ -50,15 +50,52 @@
when (not (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.")
- ;; install the missing packages
- (dolist (p prelude-packages)
- (when (not (package-installed-p p))
- (package-install p))))
+(defun prelude-install-packages ()
+ (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.")
+ ;; install the missing packages
+ (dolist (p prelude-packages)
+ (unless (package-installed-p p)
+ (package-install p)))))
+
+(prelude-install-packages)
+
+(defmacro prelude-auto-install (ext mode)
+ `(add-to-list 'auto-mode-alist
+ `(,ext . (lambda ()
+ (package-install ',mode)
+ (,mode)))))
+
+(defvar prelude-auto-install-alist
+ '(("\\.markdown\\'" . markdown-mode)
+ ("\\.md\\'" . markdown-mode)
+ ("\\.haml\\'" . haml-mode)
+ ("\\.scss\\'" . scss-mode)
+ ("\\.sass\\'" . sass-mode)
+ ("\\.groovy\\'" . groovy-mode)
+ ("\\.yml\\'" . yaml-mode)
+ ("\\.php\\'" . php-mode)
+ ("\\.hs\\'" . haskell-mode)
+ ("\\.less\\'" . less-css-mode)
+ ("\\.lua\\'" . lua-mode)
+ ("\\.coffee\\'" . coffee-mode)
+ ("\\.erl\\'" . erlang-mode)
+ ("\\.feature\\'" . feature-mode)))
+
+;; markdown-mode doesn't have autoloads for the auto-mode-alist
+;; so we add them manually if it's already installed
+(when (package-installed-p 'markdown-mode)
+ (add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode))
+ (add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode)))
+
+(dolist (entry prelude-auto-install-alist)
+ (let ((ext (car entry))
+ (mode (cdr entry)))
+ (unless (package-installed-p mode)
+ (prelude-auto-install ext mode))))
(provide 'prelude-packages)
;;; prelude-packages.el ends here

0 comments on commit 5b38ad5

Please sign in to comment.
Something went wrong with that request. Please try again.