Skip to content

Commit 97e4b30

Browse files
committed
feat: Report exit status globally
1 parent b23841d commit 97e4b30

File tree

5 files changed

+29
-40
lines changed

5 files changed

+29
-40
lines changed

lisp/_prepare.el

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1432,7 +1432,29 @@ This uses function `locate-dominating-file' to look up directory tree."
14321432
(ignore-errors (make-directory package-user-dir t))
14331433
(eask--silent (eask-setup-paths))
14341434
(eask-with-verbosity 'debug (eask--load-config))
1435-
(eask--with-hooks ,@body))))))))))
1435+
(eask--with-hooks ,@body))))))
1436+
;; Report exit stats if any.
1437+
(eask--handle-exit-status)))))
1438+
1439+
(defun eask--error-status ()
1440+
"Return error status."
1441+
(let ((result))
1442+
;; Error.
1443+
(when eask--has-error-p
1444+
(push 'error result))
1445+
;; Warning.
1446+
(when eask--has-warn-p
1447+
(push (if (eask-strict-p)
1448+
'error
1449+
'warn)
1450+
result))
1451+
;; No repeat.
1452+
(delete-dups result)))
1453+
1454+
(defun eask--handle-exit-status ()
1455+
"Return non-nil if we should report error for exit status."
1456+
(when (memq 'error (eask--error-status))
1457+
(eask--exit 'failure)))
14361458

14371459
;;
14381460
;;; Eask file
@@ -2000,7 +2022,7 @@ Argument ARGS are direct arguments for functions `eask-error' or `eask-warn'."
20002022
"On error.
20012023
20022024
Arguments FNC and ARGS are used for advice `:around'."
2003-
(setq eask--has-error-p t)
2025+
(setq eask--has-error-p t) ; Just a record.
20042026
(let ((msg (eask--ansi 'error (apply #'format-message args))))
20052027
(unless eask-inhibit-error-message
20062028
(eask--unsilent (eask-msg "%s" msg)))
@@ -2012,7 +2034,7 @@ Arguments FNC and ARGS are used for advice `:around'."
20122034
"On warn.
20132035
20142036
Arguments FNC and ARGS are used for advice `:around'."
2015-
(setq eask--has-warn-p t)
2037+
(setq eask--has-warn-p t) ; Just a record.
20162038
(let ((msg (eask--ansi 'warn (apply #'format-message args))))
20172039
(unless eask-inhibit-error-message
20182040
(eask--unsilent (eask-msg "%s" msg)))

lisp/lint/elint.el

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,6 @@
4444
(eask-print-log-buffer log-buffer)
4545
(kill-buffer log-buffer))))
4646

47-
(defun eask-lint-elint--has-error-p ()
48-
"Return non-nil if we should report error for exit status."
49-
(and eask--has-warn-p
50-
(eask-strict-p)))
51-
5247
(eask-start
5348
(require 'elint)
5449
(let* ((patterns (eask-args))
@@ -62,10 +57,7 @@
6257
(eask-msg "")
6358
(eask-info "(Total of %s file%s %s checked)" (length files)
6459
(eask--sinr files "" "s")
65-
(eask--sinr files "has" "have"))
66-
;; Report error.
67-
(when (eask-lint-elint--has-error-p)
68-
(eask--exit 'failure)))
60+
(eask--sinr files "has" "have")))
6961
;; Pattern defined, but no file found!
7062
(patterns
7163
(eask-info "(No files match wildcard: %s)"

lisp/lint/elsa.el

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,6 @@
6060
(t (eask-log line)))))
6161
(eask-msg "No issues found"))))
6262

63-
(defun eask-lint-elsa--has-error-p ()
64-
"Return non-nil if we should report error for exit status."
65-
(or eask--has-error-p
66-
(and eask--has-warn-p
67-
(eask-strict-p))))
68-
6963
(eask-start
7064
;; Preparation
7165
(eask-archive-install-packages '("gnu" "melpa")
@@ -85,10 +79,7 @@
8579
(mapcar #'eask-lint-elsa--analyse-file files)
8680
(eask-msg "")
8781
(eask-info "(Total of %s file%s linted)" (length files)
88-
(eask--sinr files "" "s"))
89-
;; Report error.
90-
(when (eask-lint-elsa--has-error-p)
91-
(eask--exit 'failure)))
82+
(eask--sinr files "" "s")))
9283
;; Pattern defined, but no file found!
9384
(patterns
9485
(eask-msg "")

lisp/lint/package.el

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,6 @@
5757
(kill-current-buffer)))
5858
(eask-print-log-buffer "*Package-Lint*"))
5959

60-
(defun eask-lint-package--has-error-p ()
61-
"Return non-nil if we should report error for exit status."
62-
(and eask--has-warn-p
63-
(eask-strict-p)))
64-
6560
(eask-start
6661
;; Preparation
6762
(eask-archive-install-packages '("gnu" "melpa")
@@ -82,10 +77,7 @@
8277
(mapcar #'eask-lint-package--file files)
8378
(eask-msg "")
8479
(eask-info "(Total of %s file%s linted)" (length files)
85-
(eask--sinr files "" "s"))
86-
;; Report error.
87-
(when (eask-lint-package--has-error-p)
88-
(eask--exit 'failure)))
80+
(eask--sinr files "" "s")))
8981
;; Pattern defined, but no file found!
9082
(patterns
9183
(eask-msg "")

lisp/lint/regexps.el

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,6 @@
6161
(eask-msg "No issues found"))
6262
(kill-current-buffer))))
6363

64-
(defun eask-lint-regexps--has-error-p ()
65-
"Return non-nil if we should report error for exit status."
66-
(and eask--has-warn-p
67-
(eask-strict-p)))
68-
6964
(eask-start
7065
;; Preparation
7166
(eask-archive-install-packages '("gnu")
@@ -85,10 +80,7 @@
8580
(mapcar #'eask-lint-regexps--relint-file files)
8681
(eask-msg "")
8782
(eask-info "(Total of %s file%s linted)" (length files)
88-
(eask--sinr files "" "s"))
89-
;; Report error.
90-
(when (eask-lint-regexps--has-error-p)
91-
(eask--exit 'failure)))
83+
(eask--sinr files "" "s")))
9284
;; Pattern defined, but no file found!
9385
(patterns
9486
(eask-msg "")

0 commit comments

Comments
 (0)