cli.py: add option to print out resource as JSON
This commit is contained in:
parent
07e5d9845a
commit
bd03d4c6ad
15
cli.py
15
cli.py
@ -66,7 +66,15 @@ def init_cli_resource():
|
|||||||
@click.argument('path')
|
@click.argument('path')
|
||||||
@click.option('--all/--one', default=False)
|
@click.option('--all/--one', default=False)
|
||||||
@click.option('--tag', default=None)
|
@click.option('--tag', default=None)
|
||||||
def show(tag, all, path):
|
@click.option('--use-json/--no-use-json', default=False)
|
||||||
|
def show(use_json, tag, all, path):
|
||||||
|
import json
|
||||||
|
import six
|
||||||
|
|
||||||
|
printer = lambda r: six.print_(r)
|
||||||
|
if use_json:
|
||||||
|
printer = lambda r: six.print_(json.dumps(r.to_dict()))
|
||||||
|
|
||||||
if all or tag:
|
if all or tag:
|
||||||
for name, resource in xr.load_all(path).items():
|
for name, resource in xr.load_all(path).items():
|
||||||
show = True
|
show = True
|
||||||
@ -75,10 +83,9 @@ def init_cli_resource():
|
|||||||
show = False
|
show = False
|
||||||
|
|
||||||
if show:
|
if show:
|
||||||
print resource
|
printer(resource)
|
||||||
print
|
|
||||||
else:
|
else:
|
||||||
print xr.load(path)
|
printer(xr.load(path))
|
||||||
|
|
||||||
resource.add_command(show)
|
resource.add_command(show)
|
||||||
|
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import copy
|
import copy
|
||||||
import json
|
|
||||||
import os
|
import os
|
||||||
import shutil
|
|
||||||
|
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
|
|
||||||
@ -45,11 +43,16 @@ class Resource(object):
|
|||||||
self.tags = tags or []
|
self.tags = tags or []
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return ("Resource(name='{0}', metadata={1}, args={2}, "
|
return ("Resource(name='{name}', metadata={metadata}, args={args}, "
|
||||||
"tags={3})").format(self.name,
|
"tags={tags})").format(**self.to_dict)
|
||||||
json.dumps(self.metadata),
|
|
||||||
json.dumps(self.args_show()),
|
def to_dict(self):
|
||||||
self.tags)
|
return {
|
||||||
|
'name': self.name,
|
||||||
|
'metadata': self.metadata,
|
||||||
|
'args': self.args_show(),
|
||||||
|
'tags': self.tags,
|
||||||
|
}
|
||||||
|
|
||||||
def args_show(self):
|
def args_show(self):
|
||||||
def formatter(v):
|
def formatter(v):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user