read profiles from PROJECT_ROOT/profiles.clj

This is useful as a place to put profile information that you don't
want committed. e.g. deployment server lists, passwords, etc...
This commit is contained in:
Justin Balthrop 2012-07-17 19:14:21 -07:00
parent 7cd6885a01
commit 9f6f1cc78f
3 changed files with 16 additions and 5 deletions

View file

@ -7,6 +7,7 @@
[ordered.map :as ordered]
[cemerick.pomegranate :as pomegranate]
[cemerick.pomegranate.aether :as aether]
[leiningen.core.utils :as utils]
[leiningen.core.ssl :as ssl]
[leiningen.core.user :as user]
[leiningen.core.classpath :as classpath])
@ -201,6 +202,9 @@
(alter-var-root #'warn-user-repos memoize)
(defn- project-profiles [project]
(utils/read-file (io/file (:root project) "profiles.clj")))
(defn- profiles-for
"Read profiles from a variety of sources.
@ -209,7 +213,8 @@
project map."
[project profiles-to-apply]
(warn-user-repos)
(let [profiles (merge @default-profiles (user/profiles) (:profiles project))]
(let [profiles (merge @default-profiles (user/profiles)
(:profiles project) (project-profiles project))]
;; We reverse because we want profile values to override the
;; project, so we need "last wins" in the reduce, but we want the
;; first profile specified by the user to take precedence.

View file

@ -2,7 +2,8 @@
"Functions exposing user-level configuration."
(:require [clojure.java.io :as io]
[clojure.string :as str]
[clojure.java.shell :as shell])
[clojure.java.shell :as shell]
[leiningen.core.utils :as utils])
(:import (java.util.regex Pattern)))
(defn leiningen-home
@ -25,9 +26,7 @@
(defn profiles
"Load profiles.clj from your Leiningen home if present."
[]
(let [profiles-file (io/file (leiningen-home) "profiles.clj")]
(if (.exists profiles-file)
(read-string (slurp profiles-file)))))
(utils/read-file (io/file (leiningen-home) "profiles.clj")))
(defn credentials-fn
"Decrypt map from credentials.clj.gpg in Leiningen home if present."

View file

@ -0,0 +1,7 @@
(ns leiningen.core.utils)
(defn read-file
"Read the contents of file if it exists."
[file]
(when (.exists file)
(read-string (slurp file))))