 ;; Git functions
 
 (defun skewer-bower-cache (package)
-  "Return the cache directory for PACKAGE."
+  "Return the cache repository directory for PACKAGE."
   (unless (file-exists-p skewer-bower-cache-dir)
     (make-directory skewer-bower-cache-dir t))
   (expand-file-name package skewer-bower-cache-dir))
 
 (defun skewer-bower-git (package &rest args)
+  "Run git for PACKAGE's repository with ARGS."
   (with-temp-buffer
     (when (zerop (apply #'call-process skewer-bower-git-executable nil t nil
                         (format "--git-dir=%s" (skewer-bower-cache package))

          (insert contents)
        (httpd-error t 404)))))

(setf skewer-bower-refreshed nil))
(skewer-bower-get-config "angular")
(skewer-bower-package-versions "angular")
skewer-bower-packages

(skewer-bower-git-show "angular" "master" "bower.json")
(skewer-bower-git-show "jquery" "master" "bower.json")
(skewer-bower-git-show "jquery" "master" "package.json")
(skewer-bower-git-show "jade" "master" "bower.json")

      (buffer-string))))

(defun skewer-bower-git-clone (url package)
  "Clone or fetch PACKAGE's repository from URL if needed."
  (if (member package skewer-bower-refreshed)
      t
    (let* ((cache (skewer-bower-cache package))
