         (if (.exists pfile)
           path
           (recur (.getParentFile path)))))))
+
+(defn box-repo-add
+  [{:keys [gitdir branch sha proj path]}]
+  (if-let [bdir (find-box)]
+    (let [pname (-> (str proj)
+                    (s/replace #"/" "--"))
+          pdir (adj-path bdir pname)
+          checkout (adj-path bdir (str ".voom-box/" pname))]
+      (println "Found box at:" bdir pdir)
+      (if (.exists ^File checkout)
+        (git {:gitdir (adj-path checkout "/.git")}
+             "fetch")
+        (git {} "clone" gitdir
+             "--refer" gitdir
+             checkout))
+      (git {:gitdir (adj-path checkout "/.git")}
+           "checkout" sha) ; must detach head for update...
+      (git {:gitdir (adj-path checkout "/.git")}
+           "branch" "-f" branch sha)
+      (git {:gitdir (adj-path checkout "/.git")}
+           "checkout" branch)
+      (sh "rm" "-f" pdir)
+      ;; (SYMLINK WILL NEED TO BE UPDATED FOR EACH CHECKOUT)
+      (sh "ln" "-s" (adj-path checkout path) pdir))
+    (println "Can't find box")))
 
 (defn box-add
   [proj & deps]

          (println "Multiple projects / locations match" (str \" dep \"\:))
          (doseq [r repo-infos]
            (prn r)))
        (prn "Found:" (first repo-infos))))))

;; === lein entrypoint ===


    (cond
     (:print kargset) (println (:version @new-project))
     (:parse kargset) (prn (ver-parse (first sargs)))
     (:find-box kargset) (prn (find-box))
     (:box-add kargset) (apply box-add project sargs)
     :else (if-let [f (get sub-commands (first sargs))]
             (apply f @new-project (rest sargs))
             (if (and (dirty-wc? (:root @new-project))
