          (throw (ex-info (str "Execution `"
                               (clojure.string/join " " command)
                               "` expired.") opts)))))))
+
 (defn exec-with-success-or-throw [& args]
    (logging/warn "exec-with-success-or-throw is deprecated, use exec! or async-exec")
   (let [res (apply exec args)]

  ([command opts]
   (let [wrapped-exec (async-exec command opts)
         realized-exec (-> wrapped-exec deref :exec deref)]
     (logging/warn 'wrapped-exec wrapped-exec)
     (logging/warn 'realized-exec realized-exec)
     (when-let [ex (-> wrapped-exec deref :exception)] (throw ex))
     (when-not (= 0 (:exit realized-exec))
       (throw  (ex-info (str "Execution `"

                        @wrapped-exec)))
     realized-exec)))


;### Debug #####################################################################
;(debug/debug-ns *ns*)
