     [java.io File]
     ))
 
+(def default-key-pair (memoize pki/generate-key-pair))
 
 (def default-traits-files
   (case (System/getProperty "os.name")

       flatten (clojure.string/join \newline)))

(def generate-config-file-file-header
  [(str "# Cider-CI " (cider-ci.utils.self/version) " Default Executor Configuration")
   "#"
   "# Some of these defaults depend on the environment."
   "# We recommend to create a configuration file based on this file"
   "# but only including those keys/values which are intended to be "
   "# overridden."
   "# The default configuration will be merged with the configuration"
   "# given in the config-file. See also 'deep-merge' in the documentation."
   "#"])

(def config-file-option

  ;  :service :executor,
    :accepted_repositories ["^.*$"]
;    :windows {:fsi_path "C:\\Program Files (x86)\\Microsoft SDKs\\F#\\4.0\\Framework\\v4.0\\Fsi.exe"},
    :tmp_dir (-> "/tmp" clj-fs/absolute clj-fs/normalized str),
;    :server_secret "secret",
    :trial_retention_duration "30 Minutes",
    :name (hostname),
    :hostname (hostname),
;    :secret "secret",
    :repositories_dir nil;(-> "./tmp/executor_repositories" clj-fs/absolute clj-fs/normalized str),
    :working_dir (->  "./tmp/working_dir" clj-fs/absolute clj-fs/normalized str),
    :default_script_timeout "3 Minutes",
    :public_key (-> (default-key-pair) pki/key-pair->pem-public)
    :private_key (-> (default-key-pair) pki/key-pair->pem-private)
;    :http {:port 8883
;           :host "localhost"
;           :enabled (if (= env/env :dev) true false)}
