aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2018-10-15 21:29:34 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2018-10-15 21:31:18 -0700
commit20a8e393a01925f977689c70b58299372b725536 (patch)
tree1ca1eb74bf8c1e86261bd4ada6d6d9bc480f2709
parent4568b57ad7728f30c1e2badc9735c8990cd51265 (diff)
downloadvcpkg-20a8e393a01925f977689c70b58299372b725536.tar.gz
vcpkg-20a8e393a01925f977689c70b58299372b725536.zip
[vcpkg env] Add argument to run a command
-rw-r--r--toolsrc/src/vcpkg/commands.env.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/toolsrc/src/vcpkg/commands.env.cpp b/toolsrc/src/vcpkg/commands.env.cpp
index d078baedb..f56bda1ec 100644
--- a/toolsrc/src/vcpkg/commands.env.cpp
+++ b/toolsrc/src/vcpkg/commands.env.cpp
@@ -23,9 +23,9 @@ namespace vcpkg::Commands::Env
}};
const CommandStructure COMMAND_STRUCTURE = {
- Help::create_example_string("env --triplet x64-windows"),
- 0,
+ Help::create_example_string("env <optional command> --triplet x64-windows"),
0,
+ 1,
{SWITCHES, {}},
nullptr,
};
@@ -64,11 +64,12 @@ namespace vcpkg::Commands::Env
if (add_python) extra_env.emplace("PYTHONPATH", (paths.installed / triplet.to_string() / "python").u8string());
if (path_vars.size() > 0) extra_env.emplace("PATH", Strings::join(";", path_vars));
- if (env_cmd.empty())
- System::cmd_execute_clean("cmd", extra_env);
- else
- System::cmd_execute_clean(env_cmd + " && cmd", extra_env);
+ std::string env_cmd_prefix = env_cmd.empty() ? "" : Strings::format("%s &&", env_cmd);
+ std::string env_cmd_suffix =
+ args.command_arguments.empty() ? "cmd" : Strings::format("cmd /c %s", args.command_arguments.at(0));
+ const std::string cmd = Strings::format("%s %s", env_cmd_prefix, env_cmd_suffix);
+ System::cmd_execute_clean(cmd, extra_env);
Checks::exit_success(VCPKG_LINE_INFO);
}
}