Handle task failure correctly
authorFrank Duncan <frank@kank.net>
Thu, 9 Dec 2021 19:28:58 +0000 (13:28 -0600)
committerFrank Duncan <frank@kank.net>
Thu, 9 Dec 2021 19:28:58 +0000 (13:28 -0600)
src/main/cli.lisp
src/main/run.lisp

index 08bd93b2115bc30e6d5e546385a8d01b9963afba..006830eca33bab8387aa3c986ff253488e5c1386 100644 (file)
@@ -79,7 +79,7 @@
    ((eql error :required-argument-missing) (format *error-output* "Missing argument for ~A.  See 'candle run --help'.~%" (car remaining-args)))
    (remaining-args (format *error-output* "Unknown option: ~A. See 'candle run --help'.~%" (car remaining-args)))
    ((opera:option-present :help options) (format t "~A" (opera:usage "candle run" (run-options))))
-   (t (candle:run)))))
+   ((not (candle:run)) (sb-ext:exit :code 1)))))
 
 (defun run ()
  (multiple-value-bind (options remaining-args error) (opera:process-arguments (main-options) (cdr sb-ext:*posix-argv*))
index fa9edbe45600258e7c5fd51b87cb9ec552a2984d..d6b963c3a039ba097c012d9b50bd817fcab7c22e 100644 (file)
@@ -5,9 +5,10 @@
 
 (defun run-task (task)
  (format t "~%~c[1;33mRunning ~:(~A~)~c[0m~%" #\Esc (getf task :name) #\Esc)
- (eval (getf task :directions))
-; (format t "~c[1;31mFailed doc check!~c[0m~%" #\Esc #\Esc)
- (format t "~c[1;32m- ~:(~A~) Passed!~c[0m~%" #\Esc (getf task :name) #\Esc))
+ (if
+  (eval (getf task :directions))
+  (progn (format t "~c[1;32m- ~:(~A~) Passed!~c[0m~%" #\Esc (getf task :name) #\Esc) t)
+  (format t "~c[1;31m- ~:(~A~) Failed!~c[0m~%" #\Esc (getf task :name) #\Esc)))
 
 (defun run ()
  (if
@@ -19,4 +20,4 @@
    (let
     ((candle-definition (read str)))
     (format t "Running tasks for ~(~A~)~%" (getf candle-definition :name))
-    (mapcar #'run-task (getf candle-definition :tasks))))))
+    (every #'identity (mapcar #'run-task (getf candle-definition :tasks)))))))