refmerge
v0.9.7
Published
Compile and merge YAML, JSON or INI config files together through file path references
Downloads
11
Maintainers
Readme
refmerge
Compile and merge YAML, JSON or INI config files together through file path references
Install:
$ npm install -g refmergeExample: YAML
Template(s):
AWSTemplateFormatVersion: '2010-09-09'
Resources:
- $ref: ./resources/role-policies.yamlRolePolicies:
$ref: ./resources/role-policy-iam-custom-role.yamlType: 'AWS::IAM::Policy'
Properties:
PolicyName: custom-role
Roles:
- custom-role
PolicyDocument:
Version: '2012-10-17'
Statement:
-
Sid: PassRole
Effect: Allow
Resource:
-
'Fn::Join':
- ""
-
- 'arn:aws:iam::'
-
Ref: 'AWS::AccountId'
- ':role/*'
Action:
- 'iam:PassRole'Code:
'use strict';
const path = require('path');
const refmerge = require('refmerge');
const templateDir = `${__dirname}/../templates`;
const buildDir = `${__dirname}/../build`;
const inputTemplate = path.resolve(`${templateDir}/template.yaml`);
const outputFile = path.resolve(`${buildDir}/output-template.yaml`);
try {
refmerge(inputTemplate, outputFile)
.then((results) => {
console.log(`\n File written: ${results.outputFile}`);
});
} catch (e) {
console.error(e.message);
console.error(e.stack);
}Or cli:
$ refmerge -o ./build/output.yaml ./templates/main.yamlOutput:
AWSTemplateFormatVersion: '2010-09-09'
Resources:
- RolePolicies:
Type: 'AWS::IAM::Policy'
Properties:
PolicyName: custom-role
Roles:
- custom-role
PolicyDocument:
Version: '2012-10-17'
Statement:
- Sid: PassRole
Effect: Allow
Resource:
- 'Fn::Join':
- ''
- - 'arn:aws:iam::'
- Ref: 'AWS::AccountId'
- ':role/*'
Action:
- 'iam:PassRole'