-(defun pui-directory-exists (dir)
- "Check to see if DIR exists in `package-get-remote'."
- (let (found)
- (mapcar '(lambda (item)
- (if (and (null (car item))
- (string-equal (file-name-as-directory (car (cdr item)))
- (file-name-as-directory dir)))
- (setq found t))
- ) package-get-remote)
- found
- ))
-
-(defun pui-package-dir-list (buffer)
- "In BUFFER, format the list of package binary paths."
- (let ( (count 1) paths sys dir)
- (set-buffer buffer)
- (buffer-disable-undo buffer)
- (erase-buffer buffer)
- (insert "Existing package binary paths:\n\n")
- (setq paths package-get-remote)
- (while paths
- (setq sys (car (car paths))
- dir (car (cdr (car paths))))
- (insert (format "%2s. " count))
- (if (null sys)
- (insert dir)
- (insert sys ":" dir))
- (insert "\n")
- (setq count (1+ count))
- (setq paths (cdr paths))
- )
- (insert "\nThese are the places that will be searched for package binaries.\n")
- (goto-char (point-min))
- ))
+;;;###autoload
+(defun package-ui-add-site (site)
+ "Add site to package-get-remote and possibly offer to update package list."
+ (let ((had-none (null package-get-remote)))
+ (setq package-get-remote site)
+ (when (and had-none package-get-was-current
+ (y-or-n-p "Update Package list?"))
+ (setq package-get-was-current nil)
+ (package-get-require-base t)
+ (if (get-buffer pui-info-buffer)
+ (save-window-excursion
+ (pui-list-packages))))
+ (set-menubar-dirty-flag)))
+
+;;;###autoload
+(defun package-ui-download-menu ()
+ "Build the `Add Download Site' menu."
+ (mapcar (lambda (site)
+ (vector (car site)
+ `(if (equal package-get-remote (quote ,(cdr site)))
+ (setq package-get-remote nil)
+ (package-ui-add-site (quote ,(cdr site))))
+ ;; I've used radio buttons so that only a single
+ ;; site can be selected, but they are in fact
+ ;; toggles. SY.
+ :style 'radio
+ :selected `(equal package-get-remote (quote ,(cdr site)))))
+ package-get-download-sites))
+
+;;;###autoload
+(defun package-ui-pre-release-download-menu ()
+ "Build the 'Pre-Release Download Sites' menu."
+ (mapcar (lambda (site)
+ (vector (car site)
+ `(if (equal package-get-remote (quote ,(cdr site)))
+ (setq package-get-remote nil)
+ (package-ui-add-site (quote ,(cdr site))))
+ ;; I've used radio buttons so that only a single
+ ;; site can be selected, but they are in fact
+ ;; toggles. SY.
+ :style 'radio
+ :selected `(equal package-get-remote (quote ,(cdr site)))))
+ package-get-pre-release-download-sites))
+
+;;;###autoload
+(defun package-ui-site-release-download-menu ()
+ "Build the 'Site Release Download Sites' menu."
+ (mapcar (lambda (site)
+ (vector (car site)
+ `(if (equal package-get-remote (quote ,(cdr site)))
+ (setq package-get-remote nil)
+ (package-ui-add-site (quote ,(cdr site))))
+ ;; I've used radio buttons so that only a single
+ ;; site can be selected, but they are in fact
+ ;; toggles. SY.
+ :style 'radio
+ :selected `(equal package-get-remote (quote ,(cdr site)))))
+ package-get-site-release-download-sites))