diff options
Diffstat (limited to 'system-version-manager')
-rwxr-xr-x | system-version-manager/system-version-manager | 17 |
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": |