     `(swap! tasks update '~name update-task '~deps '~doc
             (fn [~destruct]
               (when (and ~pred
-                         (run-file-task? (file ~name) '~deps))
+                         (run-file-task? *File* '~deps))
                 (mkdir (.getParentFile *File*))
                 ~@actions)))))
 


(defmacro remove-dep! [task dep]
  `(swap! tasks update-in ['~task :deps] disj '~dep))

(defn run-task
  "Execute the specified task after executing all prerequisite tasks."

          (set! run? (assoc run? name :in-progress))
          (doseq [dep (:deps task)] (run-task dep))
          (binding [*current-task* name
                    *File* (if-not (symbol? name) (expand-defile-path name))]
            (doseq [action (:actions task)] (action *opts*))
            (set! run? (assoc run? name true))
            (if (symbol? name)
