| @@ -91,56 +91,6 @@ found, otherwise returns nil." | |||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| ;; download library from web | ;; download library from web | ||||
| (defvar fetch-library-enabled-p t | |||||
| "Set nil to skip downloading with `fetch-library'.") | |||||
| (defun fetch-library (url &optional byte-compile-p force-download-p) | |||||
| "Download a library from URL and locate it in \"~/emacs.d/lisp/\". | |||||
| Return nil if library unfound and failed to download, | |||||
| otherwise the path where the library installed. | |||||
| If BYTE-COMPILE-P is t byte compile the file after downloading. | |||||
| If FORCE-DOWNLOAD-P it t ignore exisiting library and always download. | |||||
| This function also checks the value of `fetch-library-enabled-p' and do not | |||||
| fetch libraries if this value is nil. In this case all arguments (including | |||||
| FORCE-DOWNLOAD-P) will be ignored." | |||||
| (let* ((dir (expand-file-name (concat user-emacs-directory "lisp/"))) | |||||
| (lib (file-name-sans-extension (file-name-nondirectory url))) | |||||
| (lpath (concat dir lib ".el")) | |||||
| (locate-p (locate-library lib))) | |||||
| (if (and fetch-library-enabled-p | |||||
| (or force-download-p | |||||
| (not locate-p))) | |||||
| (if (progn (message "Downloading %s..." | |||||
| url) | |||||
| (download-file url | |||||
| lpath | |||||
| t)) | |||||
| (progn (message "Downloading %s...done" | |||||
| url) | |||||
| (when (and byte-compile-p | |||||
| (require 'bytecomp nil t)) | |||||
| (and (file-exists-p (byte-compile-dest-file lpath)) | |||||
| (delete-file (byte-compile-dest-file lpath))) | |||||
| (message "Byte-compiling %s..." | |||||
| lpath) | |||||
| (byte-compile-file lpath) | |||||
| (message "Byte-compiling %s...done" | |||||
| lpath))) | |||||
| (progn (and (file-writable-p lpath) | |||||
| (delete-file lpath)) | |||||
| (message "Downloading %s...failed" | |||||
| url)))) | |||||
| (locate-library lib))) | |||||
| ;; If EMACS_EL_DRY_RUN is set and it is not an empty string, fetch-library | |||||
| ;; does not actually fetch library. | |||||
| (let ((dryrun (getenv "EMACS_EL_DRY_RUN"))) | |||||
| (when (and dryrun | |||||
| (< 0 | |||||
| (length dryrun))) | |||||
| (setq fetch-library-enabled-p | |||||
| nil) | |||||
| (message "EMACS_EL_DRY_RUN is set. Skip fetching libraries."))) | |||||
| (defun download-file (url path &optional ok-if-already-exists) | (defun download-file (url path &optional ok-if-already-exists) | ||||
| "Download file from URL and output to PATH. | "Download file from URL and output to PATH. | ||||
| IF OK-IF-ALREADY-EXISTS is true force download." | IF OK-IF-ALREADY-EXISTS is true force download." | ||||
| @@ -244,6 +194,10 @@ IF OK-IF-ALREADY-EXISTS is true force download." | |||||
| remember-major-modes-mode | remember-major-modes-mode | ||||
| ilookup | ilookup | ||||
| pasteboard | pasteboard | ||||
| end-mark | |||||
| sl | |||||
| gosh-mode | |||||
| )) | )) | ||||
| (when (safe-require-or-eval 'package) | (when (safe-require-or-eval 'package) | ||||
| @@ -766,11 +720,8 @@ IF OK-IF-ALREADY-EXISTS is true force download." | |||||
| ;; nil) | ;; nil) | ||||
| ;; Not found in MELPA nor any other package repositories | ;; Not found in MELPA nor any other package repositories | ||||
| (and (fetch-library | |||||
| "https://raw.github.com/tarao/elisp/master/end-mark.el" | |||||
| t) | |||||
| (safe-require-or-eval 'end-mark) | |||||
| (global-end-mark-mode)) | |||||
| (when (safe-require-or-eval 'end-mark) | |||||
| (global-end-mark-mode)) | |||||
| (when (safe-require-or-eval 'auto-highlight-symbol) | (when (safe-require-or-eval 'auto-highlight-symbol) | ||||
| (set-variable 'ahs-idle-interval 0.6) | (set-variable 'ahs-idle-interval 0.6) | ||||
| @@ -921,10 +872,7 @@ IF OK-IF-ALREADY-EXISTS is true force download." | |||||
| (when (safe-require-or-eval 'git-commit) | (when (safe-require-or-eval 'git-commit) | ||||
| (global-git-commit-mode 1)) | (global-git-commit-mode 1)) | ||||
| (when (fetch-library | |||||
| "http://www.emacswiki.org/emacs/download/sl.el" | |||||
| t) | |||||
| (autoload-eval-lazily 'sl)) | |||||
| (autoload-eval-lazily 'sl) | |||||
| ;; jdee is too old! use malabar instead | ;; jdee is too old! use malabar instead | ||||
| (with-eval-after-load 'jdee | (with-eval-after-load 'jdee | ||||
| @@ -1225,7 +1173,11 @@ IF OK-IF-ALREADY-EXISTS is true force download." | |||||
| ;; http://d.hatena.ne.jp/kobapan/20090305/1236261804 | ;; http://d.hatena.ne.jp/kobapan/20090305/1236261804 | ||||
| ;; http://www.katch.ne.jp/~leque/software/repos/gauche-mode/gauche-mode.el | ;; http://www.katch.ne.jp/~leque/software/repos/gauche-mode/gauche-mode.el | ||||
| (when (and (fetch-library | |||||
| ;; NOTE: This gauche-mode returns 404. | |||||
| ;; There is another gosh-mode, so for now I submitted a recipe for that into | |||||
| ;; github.com/10sr/emacs-lisp/p. I'll add setup for that later. | |||||
| (when nil (and '(fetch-library | |||||
| "http://www.katch.ne.jp/~leque/software/repos/gauche-mode/gauche-mode.el" | "http://www.katch.ne.jp/~leque/software/repos/gauche-mode/gauche-mode.el" | ||||
| t) | t) | ||||
| (autoload-eval-lazily 'gauche-mode '(gauche-mode run-scheme) | (autoload-eval-lazily 'gauche-mode '(gauche-mode run-scheme) | ||||