Comments (5)
Additional to this type of support would be to render multiple template from a single cfndsl call.
Originally I was thinking something a simple a file name globbing
cfndsl -o output/ templates/*.rb
where the templates directory contains multiple templates and it will generate a corresponding json file in the output directory.
With your idea it might be possible to combine this functionality will the ability to proivde overrides for a specific template but otherwise use the defaults something like
source: "templates/*.rb"
output: "stacks"
extras: "default_extras.yml"
templates:
component_one:
filename: "component_one/template.json"
extras: "component_one/extras.yml"
output: "stacks/component_one.json"
This would allow you to run something like
cfndsl -c
which would render all templates but component_one would use the overriden values or alternative if you passed name of the component it would just render that template and by default the component name could just be the file name minus extension.
@stevenjack Thoughts???
from cfndsl.
moved to #118
from cfndsl.
@aaronwalker in regards to the first comment, I think it might be best to split that functionality away from the config driven approach rather than mixing them up. I think what you've suggested could work quite well:
cfndsl -o output/ templates/*.rb
So we just check if the first argument handed in is a glob, if so iterate over those templates and output them to the directory specified in -o
.
This raises an interesting question of it you don't pass an output
param then the default is to output to STDOUT
. Now with multiple templates this doesn't really make sense.. I guess the best approach would be to make -o
mandatory with supplying a glob?
from cfndsl.
@aaronwalker could you move the second question into another issue and link it to this one, just easier to comment etc as they're distinct issues.
from cfndsl.
@gergnz - this looks like it can be closed given current capabilities of rake task and cfndsl executable.
I'm not sure it makes sense at this point to define yet another static template format to drive the dsl.
from cfndsl.
Related Issues (20)
- gitter.im link is broken (gives 404 not found) HOT 2
- Where should we define custom helper methods? HOT 1
- Possible regressions 0.17.5 -> 1.0.0 HOT 8
- Resources ["Foo"] refer to unknown Reference AWS::Partition HOT 4
- Typo in README examples
- CloudFrontOriginAccessIdentity is an undefined method HOT 4
- Issue with DSL generation from cli arguments HOT 1
- unknown type AWSResourceGroupsGroupJson HOT 1
- Shorthand method of accessing resource attributes via FnSub fails reference checks HOT 1
- Outdated assertion in Readme HOT 1
- SecurityGroupIngress is always an array - 1.1.1 HOT 2
- Task: Generate types from CloudFormation resource registry schemas
- Freeze specifications version HOT 2
- Allow ruby versions until eol
- Missing Support for the TimeZone property of AWS::AutoScaling::ScheduledAction HOT 1
- List ItemType in the specification file breaking template generation with spec version 69.0.0 HOT 1
- AWS::CloudFormation::Interface HOT 4
- Missing AWS::ElasticLoadBalancingV2::LoadBalancer SubnetMapping HOT 2
- Undefined method `Name' for `CfnDsl::AWS::Types::AWS_SSM_Association` HOT 8
- Jsonable calls System.exit instead of raising exception
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cfndsl.