            :doc (str "Use Figwheel to auto reload and report compile info.\n"
                      "Only takes effect when watching is happening and the\n"
                      "optimizations level is :none or nil.\n"
-                     "Defaults to true.")}}})
+                     "Defaults to true.")}
+          ["-b" "--build"]
+          {:group :cljs.cli/compile :fn build-opt
+           :arg "build-name"
+           :doc (str "The name of a build config to build.")}
+          ["-bo" "--build-once"]
+          {:group :cljs.cli/compile :fn build-once-opt
+           :arg "build-name"
+           :doc (str "The name of a build config to build once.")}}})
 
 (alter-var-root #'cli/default-commands cli/add-commands
                 figwheel-commands)

        source   (when (and (= :none (:optimizations opts :none)) main-ns)
                   (:uri (bapi/ns->location main-ns)))
        cenv     (cljs.env/default-compiler-env)]

    (cljs.env/with-compiler-env cenv
      (if-let [path (:watch opts)]
        (do
          (bapi/build (if (coll? path)
                        (apply bapi/inputs path)
                        path)
                      (dissoc opts :watch)
                      cenv)
          (watch path
                 (dissoc opts :watch)
                 cenv))
        (bapi/build source opts cenv))
      (when repl?
        (#'cli/repl-opt repl-env args cfg))
      (when (or serve? figwheel-mode?)
        ;; what to do when the repl isn't a figwheel repl here?
        ;; in the case where it isn't the repl we will need to start the server
        ;; directly, so perhaps start the server directly regardless

                   (symbol ns)
                   (:main options))
        figwheel-mode? (and (:figwheel options-meta true)
                            (not-empty watch-dirs)
                            (= :none (:optimizations options :none)))
        cfg      (if figwheel-mode?
                   (#'cljs.cli/eval-opt cfg "(figwheel.core/start-from-repl)")
                   cfg)
