2011/5/23 Ulrik Sandberg <ulrik.sandb...@gmail.com>: > How can I parameterize stuff in Leiningen's project.clj? For example, > I don't want to put my AWS credentials inside the project file: > > ... > :aws {:access-key "XXXXXXXXXXXXXXXXXX" > :secret-key "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"} > > but instead use some kind of property names that refer to environment > variables or something: > > ... > :aws {:access-key "${aws.access.key}" > :secret-key "${aws.secret.key}"}
Actually, the project.clj file is evaluated by Leiningen using the ordinary Clojure evaluator. This means that you can put arbitrary code at the top level of the file to, for example, extract the keys from environment variables. Any dev-dependencies will be available in this Leiningen JVM instance too. 'defproject' is a macro, so its contents is not evaluated the usual way. But it does have a helpful feature: Unquoted forms will be evaluated with normal Clojure rules, so it's possible to do something like this: (def access-key ...) (def secret-key ...) (defproject foo 1.0.0 ...the usual stuff... :aws {:access-key ~access-key :secret-key ~secret-key} You can of course write the whole expressions directly after the tildes, but I wanted to demonstrate the possibility of using def here. Hope this helps! // Rasmus Svensson (raek) -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en