 
 (defn command-help
   []
-  (println "Usage: utree [subcommand] command-options")
+  (println "Usage: utree subcommand [command-options]")
   (println "\nSubcommands:")
   (doseq [c (subcommands)]
-    (apply print (interpose "\t" (map c [:name :usage :doc])))
-    (println)))
+    (clojure.pprint/cl-format true "~10A~30A~40A~%" (:name c) (:usage c) (:doc c)))
+  (println))
 
 (defn -main
   ([] (command-help))

  [filename]
  (utree.dot/dot filename))

(defn subcommands
  []
  (filter :cli (map (fn [[k v]] (meta v)) (ns-publics 'utree.core))))

(defn find-first
  [pred coll]

(ns utree.core
  (:require (utree.dot))
  (:require (clojure [string :as str])
            (clojure [pprint :only (cl-format)]))
  (:gen-class))

(defn ^{:cli true :usage "filename"} dot
