         {:srcdir (fs/join dir (tar-get-directory tar-file))}))))
 
 (defn repo-handler
-  [{repo :repo
-    subdir :subdir :or ""}]
+  [{:keys [repo subdir] :or {subdir ""}}]
   ; if they dont match, return non-nil and try the next one. If they
   ; do match, return the directory the code was checked out into on
   ; success, and raise an exception on failure.

(defn untar
  "Untar a file, into directory"
  [tar-file directory]
;  (shell-out "tar" "jxf" tar-file "-C" directory)
  )

(defn tar-get-directory

  [url]
  (let [dir "scratch/"
        tar-file (str dir "tip.tar.bz2")]
    (download (str url "/archive/tip.tar.bz2") tar-file)
    (untar tar-file dir)
    {:srcdir (fs/join dir (tar-get-directory tar-file))}))

(defn try-github
  [url]
