summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Purcell <steve@sanityinc.com>2024-02-14 14:38:16 +0000
committerSteve Purcell <steve@sanityinc.com>2024-02-14 14:53:30 +0000
commit02eadfed6a9404db48bdf9439c29921a02e41863 (patch)
tree175a71a047cb444aca016baa694ea535ac5aeed4
parenta78eb9a77dc1c6f0ffee6704b99621d10ca44be0 (diff)
Actions workflow for updating data/compat-symbols
-rw-r--r--.github/workflows/compat-syms.yml20
-rwxr-xr-xtools/compat-dump15
2 files changed, 31 insertions, 4 deletions
diff --git a/.github/workflows/compat-syms.yml b/.github/workflows/compat-syms.yml
new file mode 100644
index 0000000..8aa2da6
--- /dev/null
+++ b/.github/workflows/compat-syms.yml
@@ -0,0 +1,20 @@
+name: Update compat symbols
+
+on:
+ pull_request:
+ push:
+ workflow_dispatch:
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: purcell/setup-emacs@master
+ with:
+ version: 28.2
+ - run: tools/compat-dump
+ - uses: stefanzweifel/git-auto-commit-action@v5
+ with:
+ commit_message: Regenerate compat symbols
+ file_pattern: data/compat-symbols
diff --git a/tools/compat-dump b/tools/compat-dump
index 058d3cf..a963545 100755
--- a/tools/compat-dump
+++ b/tools/compat-dump
@@ -1,8 +1,14 @@
#!/usr/bin/env -S emacs -Q --script
-(unless (string-suffix-p "/package-lint/" default-directory)
- (error "Not in the package-lint directory"))
+(require 'cl-lib)
+(cl-assert (string-suffix-p "/package-lint/" default-directory)
+ "Not in the package-lint directory")
+
+(package-install 'compat)
+(cl-assert (package-installed-p 'compat (version-to-list "29.1")))
+
(let (symbols functions)
- (dolist (file (directory-files "../compat/" t "compat-[0-9]+\\.el$"))
+ (dolist (file (directory-files (file-name-directory (locate-library "compat"))
+ t "compat-[0-9]+\\.el$"))
(with-temp-buffer
(insert-file-contents file)
(goto-char (point-min))
@@ -18,4 +24,5 @@
((or "defun" "defmacro" "defalias") (push (intern (match-string 2)) functions))))))
(with-temp-buffer
(insert (prin1-to-string (cons symbols functions)))
- (write-region (point-min) (point-max) "data/compat-symbols" nil 'quiet)))
+ (write-region (point-min) (point-max) "data/compat-symbols"))
+ (message "Wrote %d symbols and %d functions" (length symbols) (length functions)))