+ TASK: a keyword, representing a task that can be run
+
+DESCRIPTION:
+
+ Get a list of tasks available in the current .candle file."
+ (if
+ (not (probe-file ".candle"))
+ :dot-candle-absent
+ (with-open-file (str ".candle")
+ (asdf:initialize-source-registry `(:source-registry (:tree ,(car (directory "."))) :INHERIT-CONFIGURATION))
+ (mapcar #'import-package (cdr (read str)))
+ (mapcar (lambda (task) (getf task :name)) (getf (read str) :tasks)))))
+
+(defun run (&optional specified-task)
+ "RUN &optional SPECIFIED-TASK => RESULT
+
+ARGUMENTS AND VALUES:
+
+ SPECIFIED-TASK: a keyword, the task to run