aboutsummaryrefslogtreecommitdiff
path: root/scripts/theme-selector/build-inventory.el
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/theme-selector/build-inventory.el')
-rw-r--r--scripts/theme-selector/build-inventory.el31
1 files changed, 0 insertions, 31 deletions
diff --git a/scripts/theme-selector/build-inventory.el b/scripts/theme-selector/build-inventory.el
deleted file mode 100644
index 52e14baa..00000000
--- a/scripts/theme-selector/build-inventory.el
+++ /dev/null
@@ -1,31 +0,0 @@
-;;; build-inventory.el --- emit package->faces inventory for theme-selector -*- lexical-binding: t -*-
-;;; Commentary:
-;; Loaded into a running Emacs (emacsclient -e '(load ".../build-inventory.el")')
-;; to write package-inventory.json next to itself: a JSON object mapping each
-;; installed (elpa/straight) package to the faces it defines, grouped by the
-;; package that owns the face's definition file. Built-in faces are skipped.
-;; generate.py embeds the JSON so the theme-selector dropdown can reach every
-;; installed package (tier-3 phase 6, the "theme every package" path).
-;;; Code:
-
-(require 'json)
-
-(let ((h (make-hash-table :test 'equal)))
- (dolist (f (face-list))
- (let* ((file (ignore-errors (symbol-file f 'defface)))
- (pkg (and (stringp file)
- (string-match "/\\(?:elpa\\|straight/build\\|site-lisp\\)/\\([a-zA-Z0-9._-]+?\\)-[0-9][^/]*/" file)
- (match-string 1 file))))
- (when pkg (push (symbol-name f) (gethash pkg h)))))
- (let (al)
- (maphash (lambda (k v) (push (cons (intern k) (sort v #'string<)) al)) h)
- (setq al (sort al (lambda (a b) (string< (symbol-name (car a)) (symbol-name (car b))))))
- (with-temp-file (expand-file-name
- "package-inventory.json"
- (file-name-directory (or load-file-name buffer-file-name
- "~/.emacs.d/scripts/theme-selector/")))
- (let ((json-encoding-pretty-print t))
- (insert (json-encode al) "\n")))))
-
-(provide 'build-inventory)
-;;; build-inventory.el ends here