From 91daa7fc36c2ea3143fc0794b9b5905abd616b41 Mon Sep 17 00:00:00 2001 From: Julien Malik Date: Mon, 14 Mar 2016 09:48:49 +0100 Subject: [PATCH] [enh] return manifest arguments as an Orderedict --- src/yunohost/app.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/yunohost/app.py b/src/yunohost/app.py index 982e5cd46..4f3e9d283 100644 --- a/src/yunohost/app.py +++ b/src/yunohost/app.py @@ -375,7 +375,8 @@ def app_upgrade(auth, app=[], url=None, file=None): # Retrieve arguments list for upgrade script # TODO: Allow to specify arguments - args_list = _parse_args_from_manifest(manifest, 'upgrade', auth=auth) + args_odict = _parse_args_from_manifest(manifest, 'upgrade', auth=auth) + args_list = args_odict.values() args_list.append(app_id) # Execute App upgrade script @@ -462,7 +463,8 @@ def app_install(auth, app, label=None, args=None): # Retrieve arguments list for install script args_dict = {} if not args else \ dict(urlparse.parse_qsl(args, keep_blank_values=True)) - args_list = _parse_args_from_manifest(manifest, 'install', args=args_dict, auth=auth) + args_odict = _parse_args_from_manifest(manifest, 'install', args=args_dict, auth=auth) + args_list = args_odict.values() args_list.append(app_id) # Create app directory @@ -1397,8 +1399,7 @@ def _parse_args_from_manifest(manifest, action, args={}, auth=None): Retrieve specified arguments for the action from the manifest, and parse given args according to that. If some required arguments are not provided, its values will be asked if interaction is possible. - Parsed arguments will be returned as a list of strings to pass directly - to the proper script. + Parsed arguments will be returned as an OrderedDict Keyword arguments: manifest -- The app manifest to use @@ -1409,7 +1410,7 @@ def _parse_args_from_manifest(manifest, action, args={}, auth=None): from yunohost.domain import domain_list from yunohost.user import user_info - args_list = [] + args_list = OrderedDict() try: action_args = manifest['arguments'][action] except KeyError: @@ -1497,7 +1498,7 @@ def _parse_args_from_manifest(manifest, action, args={}, auth=None): raise MoulinetteError(errno.EINVAL, m18n.n('app_argument_choice_invalid', name=arg_name, choices='0, 1')) - args_list.append(arg_value) + args_list[arg_name] = arg_value return args_list