Delete package-manip.el
The functions inside are superseded by `auto-package-update`.
This commit is contained in:
parent
1cc81ac9d3
commit
ccaeda71c2
@ -1,102 +0,0 @@
|
||||
;;; package-manip.el --- Utility functions to check if package upgrades are available
|
||||
|
||||
;;; Commentary:
|
||||
;; I should add one.
|
||||
|
||||
;; Credits go to http://emacs.stackexchange.com/a/16407/507
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defun package-upgrade-all ()
|
||||
"Upgrade all packages automatically without showing *Packages* buffer."
|
||||
(interactive)
|
||||
(package-refresh-contents)
|
||||
(let (upgrades)
|
||||
(cl-flet ((get-version (name where)
|
||||
(let ((pkg (cadr (assq name where))))
|
||||
(when pkg
|
||||
(package-desc-version pkg)))))
|
||||
(dolist (package (mapcar #'car package-alist))
|
||||
(let ((in-archive (get-version package package-archive-contents)))
|
||||
(when (and in-archive
|
||||
(version-list-< (get-version package package-alist)
|
||||
in-archive))
|
||||
(push (cadr (assq package package-archive-contents))
|
||||
upgrades)))))
|
||||
(if upgrades
|
||||
(when (yes-or-no-p
|
||||
(message "Upgrade %d package%s (%s)? "
|
||||
(length upgrades)
|
||||
(if (= (length upgrades) 1) "" "s")
|
||||
(mapconcat #'package-desc-full-name upgrades ", ")))
|
||||
(save-window-excursion
|
||||
(dolist (package-desc upgrades)
|
||||
(let ((old-package (cadr (assq (package-desc-name package-desc)
|
||||
package-alist))))
|
||||
(package-install package-desc)
|
||||
(package-delete old-package)))))
|
||||
(message "All packages are up to date"))))
|
||||
|
||||
(defun check-todays-package-upgrade-p (&optional no-save)
|
||||
"Check if automatic package upgrade has been performed today.
|
||||
|
||||
This function reads the date of the last check from the
|
||||
\"last-package-upgrade\" file. Where this file is looked for is
|
||||
guessed as follows:
|
||||
|
||||
If `user-emacs-cache-directory' is set (e.g. by the
|
||||
`xdg-paths.el' package available from
|
||||
https://github.com/tomprince/xdg-paths-el), the timestamp file is
|
||||
opened from there. Otherwise, it will be read from
|
||||
`user-emacs-directory'
|
||||
|
||||
If NO-SAVE is 'nil', the current date will be saved to the
|
||||
timestamp file.
|
||||
|
||||
The return value of this function will be 't' if the timestamp
|
||||
file contains todays date, 'nil' otherwise."
|
||||
|
||||
(let ((tsfile-location (if (boundp 'user-emacs-cache-directory)
|
||||
user-emacs-cache-directory
|
||||
user-emacs-directory)))
|
||||
(unless (and (file-exists-p tsfile-location)
|
||||
(file-accessible-directory-p tsfile-location))
|
||||
(make-directory tsfile-location t))
|
||||
|
||||
(let ((timestamp-today t)
|
||||
(timestamp-buffer (find-file-literally
|
||||
(expand-file-name "last-package-upgrade"
|
||||
tsfile-location))))
|
||||
(with-current-buffer timestamp-buffer
|
||||
(goto-char 0)
|
||||
(unless (looking-at-p (format-time-string "%Y-%m-%d"))
|
||||
(unless no-save
|
||||
(erase-buffer)
|
||||
(insert (format-time-string "%Y-%m-%d"))
|
||||
(save-buffer 0))
|
||||
(setq timestamp-today nil))
|
||||
(kill-buffer)
|
||||
timestamp-today))))
|
||||
|
||||
(defun check-for-package-upgrades-on-day (&optional day-number)
|
||||
"Check for package upgrades if today is DAY-NUMBER.
|
||||
|
||||
DAY-NUMBER can be anything between 0 and 7, inclusive. Both 0
|
||||
and 7 denote Sunday to make both types of users happy.
|
||||
|
||||
If DAY-NUMBER is 'nil', it defaults to today's day."
|
||||
|
||||
(let ((actual-day-number (cond
|
||||
((eq day-number nil) (string-to-number (format-time-string "%u")))
|
||||
((eq day-number 0) 7)
|
||||
(t day-number))))
|
||||
(when (and (eq day-number (string-to-number (format-time-string "%u")))
|
||||
(not (check-todays-package-upgrade-p t)))
|
||||
(message "Calling")
|
||||
(when (call-interactively 'package-upgrade-all)
|
||||
(message "Called")
|
||||
(check-todays-package-upgrade-p nil)))))
|
||||
|
||||
(provide 'package-manip)
|
||||
|
||||
;;; package-manip.el ends here
|
Loading…
Reference in New Issue
Block a user