diff --git a/src/leiningen/classpath.clj b/src/leiningen/classpath.clj index c6a26545d..2fc4aa444 100644 --- a/src/leiningen/classpath.clj +++ b/src/leiningen/classpath.clj @@ -7,6 +7,8 @@ (str/join java.io.File/pathSeparatorChar (classpath/get-classpath project))) (defn classpath - "Print the classpath of the current project. Suitable for java's -cp option." + "Print the classpath of the current project. + +Suitable for java's -cp option." [project] (println (get-classpath-string project))) diff --git a/src/leiningen/deps.clj b/src/leiningen/deps.clj index b95e2a899..dcbd89b1c 100644 --- a/src/leiningen/deps.clj +++ b/src/leiningen/deps.clj @@ -3,6 +3,8 @@ (:require [leiningen.core.classpath :as classpath])) (defn deps - "Download all dependencies. You should never need to invoke this manually." + "Download all dependencies. + +You should never need to invoke this manually." [project] (classpath/resolve-dependencies project)) diff --git a/src/leiningen/help.clj b/src/leiningen/help.clj index 5e0c2d4c7..5780e9a46 100644 --- a/src/leiningen/help.clj +++ b/src/leiningen/help.clj @@ -38,14 +38,13 @@ (defn subtask-help-for [task-ns task] - (let [subtasks (get-subtasks-and-docstrings-for task)] - (if (empty? subtasks) - nil - (let [longest-key-length (apply max (map count (keys subtasks)))] - (string/join "\n" - (concat ["\n\nSubtasks available:"] - (for [[subtask doc] subtasks] - (formatted-help subtask doc longest-key-length)))))))) + (if-let [subtasks (seq (get-subtasks-and-docstrings-for task))] + (let [longest-key-length (apply max (map count (keys subtasks)))] + (string/join "\n" + (concat ["\n\nSubtasks available:"] + (for [[subtask doc] subtasks] + (formatted-help subtask doc + longest-key-length))))))) (defn- resolve-task [task-name] (let [task-ns (doto (symbol (str "leiningen." task-name)) require) diff --git a/todo.org b/todo.org index 217290f4a..718d41e93 100644 --- a/todo.org +++ b/todo.org @@ -23,14 +23,17 @@ See also https://github.com/technomancy/leiningen/issues - [X] Allow hooks to provide activate fn to avoid load-time side-effects - [X] Hook up reply to nrepl for new repl task - [X] Look for aliases in project.clj + - [X] javac (can we do this without ant?) - [X] Get off snapshots (data.xml, reply) - - [ ] Pass user-level repository auth settings on to pomegranate. + - [ ] Pass user-level repository auth settings on to pomegranate - [ ] Use ordered map for :dependencies and :repositories? - [ ] Honor hooks declared in plugin jar metadata? ** Other stuff (post-preview) - [ ] Offline mode - - [ ] Project-level profiles (nrepl dep comes from repl profile, etc) + - [ ] Task-level profiles (nrepl dep comes from repl profile, etc) + Better visibility than either :default profile or associng straight in - [ ] Investigate issues with :eval-in :classloader and bootclasspath + Need to ensure we're able to put Clojure on the bootstrap classpath - [ ] Address chaining issues in with-profile - [ ] Use pomegranate to dynamically resolve missing "lein new" templates - [ ] Install task outside projects @@ -41,7 +44,6 @@ See also https://github.com/technomancy/leiningen/issues - [ ] Drop clojars snapshots from default repos - [ ] compile (transitive cleaning) - [ ] shell wrappers - - [X] javac (can we do this without ant?) ** Documentation - [X] readme - [X] plugin guide