This commit is contained in:
Lars Tveito 2018-11-29 23:46:40 +01:00
parent 271b0a362c
commit 2fcfcbd9b0

10
try.el
View File

@ -36,9 +36,6 @@
(require 'package) (require 'package)
(require 'url) (require 'url)
(defvar try-tmp-dir (make-temp-file "try" t)
"A temporary directory for storing packages.")
(defun try-raw-link-p (url) (defun try-raw-link-p (url)
"Returns non-nil if this looks like an URL to a .el file." "Returns non-nil if this looks like an URL to a .el file."
(string-match-p "[^:]*://\\([^?\r\n]+\\).*\.el?$" url)) (string-match-p "[^:]*://\\([^?\r\n]+\\).*\.el?$" url))
@ -87,11 +84,12 @@ to a raw .el file. Packages are stored in `try-tmp-dir' and raw
(package-symbol (intern url-or-package))) (package-symbol (intern url-or-package)))
(cond ((try-raw-link-p url-or-package) (try-raw-link url-or-package)) (cond ((try-raw-link-p url-or-package) (try-raw-link url-or-package))
((try-package-exists-p package-symbol) ((try-package-exists-p package-symbol)
(let ((package-user-dir try-tmp-dir) (let* ((tmp-dir (make-temp-file (concat url-or-package "-") t))
(package-alist nil)) (package-user-dir tmp-dir)
(package-alist nil))
(if (version< emacs-version "25.1") (if (version< emacs-version "25.1")
(package-install package-symbol) (package-install package-symbol)
(package-install package-symbol 'dont-select)) (package-install package-symbol 'dont-select))
(message "Trying %s!" url-or-package))) (message "Trying %s!" url-or-package)))
(t (message (concat "Couldn't find a sensible way to try this. " (t (message (concat "Couldn't find a sensible way to try this. "
"Try running `package-refresh-contents'!")))))) "Try running `package-refresh-contents'!"))))))