 (defn ssh-client [host user]
   (str user "@" host))
 
-(defn- user-at-host? [host user]
+(defn-  user-at-host? [host user]
   (fn [m]
     (and (= (:user m) user) (= (:host m) host))))
 

(defn scp
  "Copy local files to remote machines:
   (scp \"test.txt\" \"remote.txt\")
   (scp [\"1.txt\" \"2.txt\"] \"/home/deploy/\")
"
  [host user cluster local remote & opts]
  (let [files (if (coll? local)
                (vec local)

        args))

(defmacro
  ^{:doc "Define a cluster including some remote machines,for example:
           (defcluster :mycluster
                     :user \"login\"
                     :addresses [\"a.domain.com\" \"b.domain.com\"])

      Please see https://github.com/killme2008/clojure-control/wiki/Define-clusters
     "
    :arglists '([name & options])
    :added "0.1"}
  defcluster [name & args]
  `(let [m# (apply hash-map ~(cons 'list (unquote-cluster args)))]
     (swap! clusters assoc ~name (assoc m# :name ~name))))

(defmacro ^:private when-exit
  ([test error]
     `(when-exit ~test ~error nil))
  ([test error else]
