CI: Revamp package-update checking script

This commit is contained in:
TEC 2024-03-09 12:45:20 +08:00
parent 909230afcd
commit 031781460c
Signed by: tec
SSH Key Fingerprint: SHA256:eobz41Mnm0/iYWBvWThftS0ElEs1ftBr6jamutnXc/A
2 changed files with 121 additions and 112 deletions

View File

@ -1,19 +1,15 @@
#!/usr/bin/env sh
":"; exec emacs --quick --script "$0" -- "$@" # -*- mode: emacs-lisp; lexical-binding: t; -*-
(setq log-file (expand-file-name (format "%s-log.txt" (file-name-base load-file-name)))
log-messages nil)
(load (expand-file-name "initialise.el" (file-name-directory load-file-name)) nil t)
(initialise)
(initialise 'light)
(autoload #'sp-point-in-string "smartparens")
(defcli! check-updates ()
(doom-require 'doom-lib 'packages)
(doom-require 'doom-lib 'text)
;;; Generation of status badge
(defun gen-status-img (upgradeable total)
(defun gen-status-img (upgradeable total)
(let ((colour (pcase (/ (float upgradeable) total)
((pred (= 0.0)) "brightgreen")
((pred (> 0.15)) "green")
@ -35,9 +31,9 @@
;;; Show commits
(setq upgradeable-packages 0)
(setq upgradeable-packages 0)
(defadvice! doom/bump-package-at-point-more-detail (&optional select)
(defadvice! doom/bump-package-at-point-more-detail (&optional select)
"Include commit messages."
:override #'doom/bump-package-at-point
(doom-initialize-packages)
@ -67,7 +63,7 @@
(equal oldid id))
(let ((default-directory
(or (when (plist-member recipe :local-repo)
(doom-glob doom-private-dir (plist-get recipe :local-repo)))
(expand-file-name (plist-get recipe :local-repo) doom-private-dir))
(straight--repos-dir
(file-name-sans-extension
(file-name-nondirectory url))))))
@ -98,23 +94,39 @@
;;; Do it
(message "[34] Opening package file")
(message "[34] Opening package file")
(with-temp-buffer
(insert-file-contents (expand-file-name "packages.el" config-root))
(setq packages nil)
(with-temp-buffer
(setq buffer-file-name (expand-file-name "packages.el" config-root))
(insert-file-contents buffer-file-name)
(emacs-lisp-mode)
;; Running `doom/bump-package-at-point' on my Org statement
;; causes it to hang, so let's get rid of it.
(goto-char (point-min))
(when (search-forward "\n(package! org" nil t)
(search-backward "(")
(delete-region
(point)
(save-excursion
(forward-sexp 1)
(point))))
(message "[34] Checking for updates")
(setq package-upgrades (doom/bump-packages-in-buffer))
(pp packages)
(setq package-upgrades
(doom/bump-packages-in-buffer))
(goto-char (point-min))
(setq total-packages 0)
(while (search-forward "(package!" nil t)
(while (search-forward "\n(package!" nil t)
(setq total-packages (1+ total-packages))))
(message "[32] %s total packages" total-packages)
(message "[33] %s packages upgradable" upgradeable-packages)
(message "[32] %s total packages" total-packages)
(message "[33] %s packages upgradable" upgradeable-packages)
(gen-status-img upgradeable-packages total-packages)
(gen-status-img upgradeable-packages total-packages)
(when (> upgradeable-packages 0)
(when (> upgradeable-packages 0)
(write-region
(replace-regexp-in-string
"- \\[ *[0-9.s]+\\] " ""
@ -125,7 +137,4 @@
package-upgrades)))
nil
(expand-file-name "misc/upgradable-packages.txt" config-root))
(publish "misc/upgradable-packages.txt")))
(setq inhibit-message t)
(kill-emacs (doom-cli-execute :doom "check-updates"))
(publish "misc/upgradable-packages.txt"))

View File

@ -13,7 +13,7 @@
(load (expand-file-name "async-proc-management.el") nil t)
(apm-exec '("subconf.sh" "engrave.sh"))
(apm-exec '("subconf.sh" "engrave.sh" "check-package-updates.sh"))
(if (not (file-exists-p (concat user-emacs-directory "xkcd/")))
(apm-exec "org-html.sh" :then "org-pdf.sh")