-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJustfile
More file actions
65 lines (57 loc) · 1.74 KB
/
Justfile
File metadata and controls
65 lines (57 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
default: build
# compile elisp
build: _ensure-eldev-installed
eldev compile \
--force-all \
--warnings-as-errors \
--keep-going
# install dependencies
deps: _ensure-eldev-installed
eldev prepare
# update dependencies
deps-update: _ensure-eldev-installed
eldev upgrade
# clean up bytecode
clean: _ensure-eldev-installed
eldev clean
# run tests
test: _ensure-eldev-installed
eldev test
# format all elisp files
@format: _ensure-eldev-installed
eldev exec "\
(progn \
(require 'rx) \
(require 'seq) \
(require 'subr-x) \
(require 'buttercup nil 'noerror) \
\
(defun format--hidden-path-p (path) \
(string-match-p (rx string-start \".\" (+ (not \"/\"))) \
(file-relative-name path default-directory))) \
\
(defun format--el-files () \
(seq-remove \
#'format--hidden-path-p \
(directory-files-recursively default-directory (rx \".el\" string-end) nil))) \
\
(let ((inhibit-message t) \
(make-backup-files nil) \
(files (format--el-files))) \
(seq-do #'load-file files) \
(seq-do \
(lambda (file) \
(let ((enable-local-variables nil) \
(enable-local-eval nil)) \
(with-current-buffer (find-file-noselect file) \
(let ((indent-tabs-mode nil)) \
(indent-region (point-min) (point-max))) \
(save-buffer) \
(kill-buffer (current-buffer))))) \
files) \
(kill-emacs 0)))"
@_ensure-eldev-installed:
if ! command -v "eldev" &> /dev/null; then \
echo "Eldev (https://github.com/emacs-eldev/eldev) is not installed"; \
exit 1; \
fi