From ae76b7dddc2973b809109329aabf15fdd676b7d6 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Sun, 9 Sep 2012 17:10:53 +0200 Subject: Add support for shell script parameters Now %sh{ ... } can access positional parameters through standard shell construct, allowing simple handling of variable parameters. def command accepts -shell-params flag to use this facility. --- src/command_manager.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/command_manager.cc') diff --git a/src/command_manager.cc b/src/command_manager.cc index 1110583f..df23ca6e 100644 --- a/src/command_manager.cc +++ b/src/command_manager.cc @@ -211,6 +211,7 @@ void CommandManager::execute_single_command(const CommandParameters& params, void CommandManager::execute(const String& command_line, Context& context, + const memoryview& shell_params, const EnvVarMap& env_vars) { TokenList tokens = parse(command_line); @@ -223,7 +224,8 @@ void CommandManager::execute(const String& command_line, if (it->type() == Token::Type::ShellExpand) { String output = ShellManager::instance().eval(it->content(), - context, env_vars); + context, shell_params, + env_vars); TokenList shell_tokens = parse(output); it = tokens.erase(it); for (auto& token : shell_tokens) -- cgit v1.2.3