Skip to content

Commit

Permalink
Merge pull request #75 from cfstacks/output_format
Browse files Browse the repository at this point in the history
Print config in different formats
  • Loading branch information
vaijab committed Feb 15, 2016
2 parents a61db14 + aad918a commit c5cc6bf
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 6 deletions.
2 changes: 1 addition & 1 deletion stacks/__about__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = '0.3.1'
__version__ = '0.3.2-rc1'
__licence__ = 'MIT'
__url__ = 'https://cfstacks.github.io'
__maintainer__ = 'Vaidas Jablonskis'
Expand Down
2 changes: 2 additions & 0 deletions stacks/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ def parse_options():

parser_config = subparsers.add_parser('config', help='Print config properties')
parser_config.add_argument('-e', '--env', env_var='STACKS_ENV')
parser_config.add_argument('-o', '--output', default='text', choices=['text', 'yaml', 'json'],
dest='output_format', help='Output format')
parser_config.add_argument('-c', '--config', default='config.yaml',
env_var='STACKS_CONFIG', required=False,
type=_is_file)
Expand Down
19 changes: 15 additions & 4 deletions stacks/config.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import sys
import os
import yaml
import json
import botocore.config

AWS_CONFIG_FILE = os.environ.get('HOME', '') + '/.aws/credentials'
Expand Down Expand Up @@ -102,12 +103,22 @@ def validate_properties(props_arg):
return properties


def print_config(config, property_name=None):
def print_config(config, property_name=None, output_format=None):
if property_name is not None:
if config.get(property_name):
print(config[property_name])
if output_format == 'json':
print(json.dumps(config[property_name], indent=2))
elif output_format == 'yaml':
print(yaml.dump(config[property_name]))
else:
print(config[property_name])
return

for k, v in config.items():
print('{}={}'.format(k, v))
elif output_format == 'yaml':
print(yaml.dump(config))
elif output_format == 'json':
print(json.dumps(config, indent=2))
else:
for k, v in config.items():
print('{}={}'.format(k, v))
return
2 changes: 1 addition & 1 deletion stacks/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def main():
config = config_load(env, config_file, config_dir)

if args.subcommand == 'config':
print_config(config, args.property_name)
print_config(config, args.property_name, output_format=args.output_format)
sys.exit(0)

config['get_ami_id'] = aws.get_ami_id
Expand Down

0 comments on commit c5cc6bf

Please sign in to comment.