FAQ
Hi Kevin,

I've created some kind of wrapper around CF templates too. It is too
immature (and ugly) to open source it, but I think it has some nice
features, like Ref checking, templating for userdata and schema validation
of the CF resources via Prismatic Schema.

Can you elaborate on what kind of features you would like to support? Are
you just deciding on DSL syntax or do you have already some kind of Clojure
layer working?

About the DSL, in the end I decided to stick closer to the CF syntax to
avoid confusion and documentation mismatches. So for instance, all my
parameters for a CF resource are CamelCase. One of the most important
features for me is the validation on missing fields and Reference checking.

If you are interested in collaborating in this, please let me know.

Cheers,
Jeroen




On Tue, Nov 26, 2013 at 9:11 AM, Kevin Bell wrote:

Hey Craig,

Thanks for the input. Forgive my naiveté, but I gather you're implying
that the DSL-ishness is desirable? That makes sense, and it seems to be
inline with what I'm learning about the lisp mindset.

You're suggestion is actually a lot more like an option that I was
considering but didn't do because it seemed to depart from things like
project.clj that I was emulating. But it might actually make sense to take
it a step further to make the scoping within CloudFormation templates more
explicit.

I updated my gist with an even more DSL-like concept:
https://gist.github.com/bellkev/7653342

On Monday, November 25, 2013 11:49:20 PM UTC-8, Craig wrote:


I don't know much about CF templates, but stripping some detail from your
middle fragment moves further from data and to a DSL:

(deftemplate my-template
:aws-template-format-version "2010-09-09"
:description "My description"

(param my-parameter :type :string :description "My string parameter")

(mapping my-mapping
:first-level-key-one {:second-level-key-one "Value"}
:first-level-key-two {:second-level-key-two "Another Value"})

(condition my-condition (not my-parameter))
(condition my-second-condition (= (-> my-mapping :first-level-key-one
:second-level-key-one) my-parameter))

(resource my-instance aws.ec2/instance :image-id "ami-79fd7eee")

(output my-first-output (:instance-type my-instance))
(output my-second-output my-parameter))

Craig

On Tuesday, November 26, 2013 3:41:29 PM UTC+11, Kevin Bell wrote:

Hey folks, I'm working on a tool to enable the generation of AWS
CloudFormation templates using a Clojure-based syntax kind of like
leiningen's project.clj. I'm working on how the syntax should look to be
most clojurey, and I wonder if anyone has some input:
https://gist.github.com/bellkev/7653342<https://www.google.com/url?q=https%3A%2F%2Fgist.github.com%2Fbellkev%2F7653342&sa=D&sntz=1&usg=AFQjCNF5RUFgHxpojQ1x0EPxJFQ09ibA3A>

I should add that I'm very new to Clojure and using this project as an
opportunity to learn more about the language internals. So please forgive
any particularly non-idiomatic Clojure...

Thanks!!
--
--
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+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to clojure+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
--
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+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 4 of 10 | next ›
Discussion Overview
groupclojure @
categoriesclojure
postedNov 26, '13 at 4:42a
activeNov 28, '13 at 4:57a
posts10
users5
websiteclojure.org
irc#clojure

People

Translate

site design / logo © 2022 Grokbase