Skip to content

Instantly share code, notes, and snippets.

@hiredman
Created November 21, 2011 07:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hiredman/a1f737bfe0d70a385d4c to your computer and use it in GitHub Desktop.
Save hiredman/a1f737bfe0d70a385d4c to your computer and use it in GitHub Desktop.
add deps
(defun add-clojure-dependency ()
"look for the project.clj for the current project and add the given
dependency to :dependencies"
(interactive)
(let* ((project-dir (locate-dominating-file default-directory
clojure-project-root-file))
(project-file (concat project-dir clojure-project-root-file)))
(if project-dir
(let* ((project-name (ido-completing-read "Dependency name: "
(mapcar
(lambda (x) (car x))
favorite-libraries)))
(known-version (get′ favorite-libraries project-name))
(project-version (ido-completing-read "Dependency version: "
(if known-version
(list known-version)
'())))
(buf (current-buffer)))
(progn
(find-file project-file)
(save-excursion
(goto-char (point-min))
(search-forward ":dependencies ")
(forward-sexp)
(backward-char 1)
(insert "\n")
(indent-relative)
(insert (concat "[" project-name " \"" project-version "\"]"))
(save-current-buffer)
(bury-buffer))
(shell-command
"lein deps"
"*lein deps*")
(setq favorite-libraries
(cons (cons project-name project-version)
(assq-delete-all project-name favorite-libraries)))
(switch-to-buffer buf)))
(message "Project not found"))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment