From bf6a2ba60c364e7c30de198d335e481c0b3206f0 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Fri, 1 May 2015 15:22:50 +0200 Subject: [PATCH] fix(CLI): handle repeated required strings In a single case we wouldn't properly pass on string arguments that were repeated. Now we handle them with a nice one-liner. Fixes #96 [skip ci] --- src/mako/cli/lib/argparse.mako | 2 +- src/mako/cli/lib/engine.mako | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/mako/cli/lib/argparse.mako b/src/mako/cli/lib/argparse.mako index 4206d43948..7bbf372a6a 100644 --- a/src/mako/cli/lib/argparse.mako +++ b/src/mako/cli/lib/argparse.mako @@ -136,7 +136,7 @@ let arg_data = [ methods = sorted(c.rta_map[resource]) %>\ <%block filter="indent_by(4)">\ -("${mangle_subcommand(resource)}", "supported subcommands: ${put_and(["'%s'" % mangle_subcommand(m) for m in methods])}", vec![ +("${mangle_subcommand(resource)}", "methods: ${put_and(["'%s'" % mangle_subcommand(m) for m in methods])}", vec![ % for method in methods: <% mc = new_method_context(resource, method, c) diff --git a/src/mako/cli/lib/engine.mako b/src/mako/cli/lib/engine.mako index 60797ada95..4c6fd4ad74 100644 --- a/src/mako/cli/lib/engine.mako +++ b/src/mako/cli/lib/engine.mako @@ -12,8 +12,6 @@ v_arg = '<%s>' % VALUE_ARG SOPT = 'self.opt' - def to_opt_arg_ident(p): - return opt_value(p.name) def borrow_prefix(p): ptype = p.get('type', None) @@ -174,7 +172,6 @@ if opt.is_present("${flag_name}") { <% prop_name = mangle_ident(p.name) prop_type = activity_rust_type(c.schemas, p, allow_optionals=False) - opt_ident = to_opt_arg_ident(p) %>\ % if is_request_value_property(mc, p): <% request_prop_type = prop_type %>\ @@ -186,7 +183,7 @@ for (arg_id, arg) in ${opt_values(mangle_subcommand(p.name))}.enumerate() { ${prop_name}.push(arg_from_str(&arg, err, "<${mangle_subcommand(p.name)}>", arg_id), "${p.type}")); } % else: -let ${prop_name}: ${prop_type} = arg_from_str(&${opt_ident}, err, "<${mangle_subcommand(p.name)}>", "${p.type}"); +let ${prop_name}: ${prop_type} = arg_from_str(&${opt_value(p.name)}, err, "<${mangle_subcommand(p.name)}>", "${p.type}"); % endif # handle repeated values % endif # handle request value % endfor # each required parameter @@ -198,7 +195,10 @@ let ${prop_name}: ${prop_type} = arg_from_str(&${opt_ident}, err, "<${mangle_sub borrow = borrow_prefix(p) arg_name = mangle_ident(p.name) if p.get('type', '') == 'string': - arg_name = to_opt_arg_ident(p) + if p.get('repeated', False): + arg_name = opt_values(p.name) + '.map(|&v| v.to_string()).collect::>()' + else: + arg_name = opt_value(p.name) call_args.append(borrow + arg_name) # end for each required prop %>\