@@ -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
20022024Arguments 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
20142036Arguments 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)))
0 commit comments