001  (ns cmp.config
002    (:require [clojure.edn     :as edn]
003              [clojure.java.io :as io]
004              [clojure.string  :as string]))
005  
006  (defn config
007    "Reads a `edn` configuration in file `f`." 
008    ([]
009     (config (io/resource "config.edn")))
010    ([f]
011     (-> f slurp edn/read-string)))
012  
013  (defn ref-mpd [c] (-> (io/resource (:ref-mpd c)) slurp edn/read-string))
014    
015  (defn st-conn [c](:st-conn c))
016  
017  (defn key-pad-length [c] (:key-pad-length c))
018  
019  (defn st-db [c] (get-in c [:st-conn :spec :db]))
020  
021  (defn min-task-period [c] (:min-task-period c))
022  
023  (defn json-post-header [c] (:json-post-header c))
024  
025  (defn anselm-url [c] (:anselm-url c))
026  
027  (defn stop-if-delay [c] (:stop-if-delay c))
028  
029  (defn max-retry [c] (:max-retry c))
030  
031  (defn build-on-start [c]
032    (if-let [s (System/getenv "CMP_BUILD_ON_START")]
033      (string/split s  #"[;,\s]")
034      (:build-on-start c)))
035  
036  (defn dev-hub-url
037    [c]
038     (if-let [url (System/getenv "CMP_DEVHUB_URL")]
039       url
040       (:dev-hub-url c)))
041  
042  (defn dev-proxy-url
043    [c]
044     (if-let [url (System/getenv "CMP_DEVPROXY_URL")]
045       url
046       (:dev-proxy-url c)))
047  
048  (defn lt-url
049    [c]
050    (let [lt-srv (System/getenv "CMP_LT_SRV")
051          usr    (System/getenv "CAL_USR")
052          pwd    (System/getenv "CAL_PWD")
053          cred   (when (and usr pwd) (str usr ":" pwd "@"))]
054          (str (:lt-prot c) "://" cred  (or lt-srv (:lt-srv c)) ":"(:lt-port c))) ) 
055  
056  (defn lt-conn [c] (str (lt-url c) "/"(:lt-db c)))