comparison lisp/package-get.el @ 325:f2b5d7006b0a r21-0-60

Import from CVS: tag r21-0-60
author cvs
date Mon, 13 Aug 2007 10:47:35 +0200
parents 19dcec799385
children 03446687b7cc
comparison
equal deleted inserted replaced
324:8f2460f6e1f6 325:f2b5d7006b0a
318 (setq entries (cdr entries))) 318 (setq entries (cdr entries)))
319 (or expanded 319 (or expanded
320 (and (not nil-if-not-found) 320 (and (not nil-if-not-found)
321 file))))) 321 file)))))
322 322
323 (defun package-get-locate-index-file (no-remote) 323 (defun package-get-locate-index-file (force-current)
324 "Locate the package-get index file. Do not return remote paths if NO-REMOTE 324 "Locate the package-get index file.
325 is non-nil." 325 If FORCE-CURRENT is non-nil, require a current copy to be found."
326 (or (package-get-locate-file package-get-base-filename t no-remote) 326 (when (and force-current (not package-get-remote))
327 (error "No remote package sites specified in `package-get-remote'"))
328 (or (package-get-locate-file package-get-base-filename t (not force-current))
327 (locate-data-file package-get-base-filename) 329 (locate-data-file package-get-base-filename)
328 package-get-base-filename)) 330 package-get-base-filename))
329 331
330 (defvar package-get-user-package-location user-init-directory) 332 (defvar package-get-user-package-location user-init-directory)
331 333
332 (defun package-get-maybe-save-index (filename) 334 (defun package-get-maybe-save-index (filename)
333 "Offer to save the current buffer as the local package index file, 335 "Offer to save the current buffer as the local package index file,
334 if different." 336 if different."
335 (let ((location (package-get-locate-index-file t))) 337 (let ((location (package-get-locate-index-file nil)))
336 (unless (and filename (equal filename location)) 338 (unless (and filename (equal filename location))
337 (unless (equal (md5 (current-buffer)) 339 (unless (equal (md5 (current-buffer))
338 (with-temp-buffer 340 (with-temp-buffer
339 (insert-file-contents location) 341 (insert-file-contents location)
340 (md5 (current-buffer)))) 342 (md5 (current-buffer))))
348 ;;;###autoload 350 ;;;###autoload
349 (defun package-get-update-base (&optional db-file force-current) 351 (defun package-get-update-base (&optional db-file force-current)
350 "Update the package-get database file with entries from DB-FILE. 352 "Update the package-get database file with entries from DB-FILE.
351 Unless FORCE-CURRENT is non-nil never try to update the database." 353 Unless FORCE-CURRENT is non-nil never try to update the database."
352 (interactive 354 (interactive
353 (let ((dflt (package-get-locate-index-file nil))) 355 (let ((dflt (package-get-locate-index-file t)))
354 (list (read-file-name "Load package-get database: " 356 (list (read-file-name "Load package-get database: "
355 (file-name-directory dflt) 357 (file-name-directory dflt)
356 dflt 358 dflt
357 t 359 t
358 (file-name-nondirectory dflt))))) 360 (file-name-nondirectory dflt)))))
359 (setq db-file (expand-file-name (or db-file 361 (setq db-file (expand-file-name (or db-file
360 (package-get-locate-index-file 362 (package-get-locate-index-file
361 (not force-current))))) 363 force-current))))
362 (if (not (file-exists-p db-file)) 364 (if (not (file-exists-p db-file))
363 (error "Package-get database file `%s' does not exist" db-file)) 365 (error "Package-get database file `%s' does not exist" db-file))
364 (if (not (file-readable-p db-file)) 366 (if (not (file-readable-p db-file))
365 (error "Package-get database file `%s' not readable" db-file)) 367 (error "Package-get database file `%s' not readable" db-file))
366 (let ((buf (get-buffer-create "*package database*"))) 368 (let ((buf (get-buffer-create "*package database*")))