summaryrefslogtreecommitdiff
path: root/dh-elpa.el
diff options
context:
space:
mode:
Diffstat (limited to 'dh-elpa.el')
-rw-r--r--dh-elpa.el20
1 files changed, 12 insertions, 8 deletions
diff --git a/dh-elpa.el b/dh-elpa.el
index cff7009..ece3a9e 100644
--- a/dh-elpa.el
+++ b/dh-elpa.el
@@ -33,15 +33,13 @@
(dirname (package-desc-full-name pkg-desc))
(pkg-dir (expand-file-name dirname destdir))
(backup-inhibited t))
+ (make-directory pkg-dir t)
(pcase (package-desc-kind pkg-desc)
(`tar
- (make-directory package-user-dir t)
- ;; FIXME: should we delete PKG-DIR if it exists?
- (let* ((default-directory (file-name-as-directory package-user-dir)))
- (package-untar-buffer dirname)))
+ (let ((default-directory (file-name-as-directory destdir)))
+ (package-untar-buffer dirname)))
(`single
(let ((el-file (expand-file-name (format "%s.el" name) pkg-dir)))
- (make-directory pkg-dir t)
(package--write-file-no-coding el-file)))
(kind (error "Unknown package kind: %S" kind)))
(package--make-autoloads-and-stuff pkg-desc pkg-dir)
@@ -66,7 +64,13 @@ Downloads and installs required packages as needed."
into second command line argument"
(let ((dest (car command-line-args-left))
(el-file (cadr command-line-args-left)))
- (with-temp-buffer
- (insert-file-contents-literally el-file)
- (dhelpa-install-from-buffer dest))))
+ (dhelpa-install-file dest el-file)))
+
+;;;###autoload
+(defun dhelpa-install-file (dest el-file)
+ (with-temp-buffer
+ (insert-file-contents-literally el-file)
+ (when (string-match "\\.tar\\'" el-file) (tar-mode))
+ (dhelpa-install-from-buffer (expand-file-name dest))))
+
;;; dh-elpa.el ends here