summaryrefslogtreecommitdiff
path: root/system-version-manager/system-version-manager
diff options
context:
space:
mode:
Diffstat (limited to 'system-version-manager/system-version-manager')
-rwxr-xr-xsystem-version-manager/system-version-manager17
1 files changed, 14 insertions, 3 deletions
diff --git a/system-version-manager/system-version-manager b/system-version-manager/system-version-manager
index 554e459..1cb53f8 100755
--- a/system-version-manager/system-version-manager
+++ b/system-version-manager/system-version-manager
@@ -52,6 +52,10 @@ class SystemVersionManager(object):
parser_list = subparsers.add_parser('list',
help='list show you a list of systems')
parser_list.set_defaults(action='list')
+ parser_list.add_argument(
+ '--json', action='store_true',
+ help=('output list of systems in json in the form: '
+ '{"factory": {"running": true, "default": true}}'))
# create the parser for the "deploy" command
parser_deploy= subparsers.add_parser('deploy',
@@ -196,8 +200,15 @@ class SystemVersionManager(object):
if os.path.islink(default_path):
self._atomic_symlink_update(default, default_path)
- def cmd_list(self):
- default_system = self._get_default()
+ def cmd_list(self, output_json):
+ default_system = self._get_default()
+ if output_json:
+ json.dump({system: {'default': system == self.default_system,
+ 'running': system == self.current_system}
+ for system in self._get_systems()},
+ sys.stdout)
+ return
+
for system in self._get_systems():
output = system
if system == self.current_system:
@@ -394,7 +405,7 @@ class SystemVersionManager(object):
try:
if action == "list":
- self.cmd_list()
+ self.cmd_list(output_json=args.json)
elif action == "deploy":
self.cmd_deploy(args.location)
elif action == "remove":