"Automatic Package Fetcher and Installer."
:prefix "package-get"
:group 'package-tools)
-
+
+;;;###autoload
(defvar package-get-base nil
"List of packages that are installed at this site.
For each element in the alist, car is the package name and the cdr is
("uniroma2.it" "ftp.uniroma2.it" "unix/misc/dist/XEMACS/packages")
("icm.edu.pl" "ftp.icm.edu.pl" "pub/unix/editors/xemacs/packages")
("sunet.se" "ftp.sunet.se" "pub/gnu/xemacs/packages")
- ("doc.ic.ac.uk" "ftp.doc.ic.ac.uk" "packages/xemacs/packages")
+ ("doc.ic.ac.uk" "sunsite.doc.ic.ac.uk" "packages/xemacs/packages")
("srcc.msu.su" "ftp1.srcc.msu.su" "mirror/ftp.xemacs.org/packages")
;; Asia
not, then it uses the (car search) as the remote site-name and the (cadr
search) as the remote-directory and concatenates filename. In other
words
- site-name:remote-directory/filename
+ site-name:remote-directory/filename.
+
+If (car search) is nil, (cadr search is interpreted as a local directory).
"
- (if (efs-ftp-path filename)
+ (if (file-remote-p filename)
filename
(let ((dir (cadr search)))
- (concat (if (string-match "@" (car search))
- "/"
- "/anonymous@")
- (car search) ":"
+ (concat (when (car search)
+ (concat
+ (if (string-match "@" (car search))
+ "/"
+ "/anonymous@")
+ (car search) ":"))
(if (string-match "/$" dir)
dir
(concat dir "/"))
"Fetch and install the latest versions of all customized packages."
(interactive)
(package-get-require-base t)
- ;; Load a fresh copy
- (load "package-get-custom.el")
(mapcar (lambda (pkg)
(if (eval (intern (concat (symbol-name (car pkg)) "-package")))
(package-get (car pkg) nil))
(custom-var (intern (concat (symbol-name package) "-package")))
(description (plist-get props 'description)))
(when (not (memq group package-get-custom-groups))
- (setq package-get-custom-groups (cons package
+ (setq package-get-custom-groups (cons group
package-get-custom-groups))
(eval `(defgroup ,group nil
,(concat category " package group")