diff options
author | Klaus Aehlig <aehlig@google.com> | 2017-03-07 15:28:51 +0000 |
---|---|---|
committer | Vladimir Moskva <vladmos@google.com> | 2017-03-07 17:14:03 +0000 |
commit | 9dfbed1ca5228086387cfbdf385fdfe1dc9242e7 (patch) | |
tree | 2f6e733773d7bd2b047e4c7e1db0a7ca648fac13 /src/main/cpp/option_processor.cc | |
parent | 51eafed7eba88ae716da4f33f2133d4860862438 (diff) |
Rollback of commit 94d8f4e9c8c8757aa7ab7c1a7c3e9afb34039127.
*** Reason for rollback ***
broke //src/test/shell/bazel:bazel_bootstrap_distfile_test
*** Original change description ***
Env.vars: server won't ignore the client env
Make the --ignore_client_env flag a no-op.
The client will pass --client_env flags to the
server even in --batch mode. This simplifies the
code as well as ensuring that the server always
uses the up-do-date client environment.
We'll gradually get rid of all System.getenv calls
in the server, because the server should always
respect the client env.
--
PiperOrigin-RevId: 149416602
MOS_MIGRATED_REVID=149416602
Diffstat (limited to 'src/main/cpp/option_processor.cc')
-rw-r--r-- | src/main/cpp/option_processor.cc | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/src/main/cpp/option_processor.cc b/src/main/cpp/option_processor.cc index a203448b84..cfd390d003 100644 --- a/src/main/cpp/option_processor.cc +++ b/src/main/cpp/option_processor.cc @@ -372,7 +372,7 @@ blaze_exit_code::ExitCode OptionProcessor::ParseOptions( command_ = args[startup_args_ + 1]; - AddRcfileArgsAndOptions(cwd); + AddRcfileArgsAndOptions(parsed_startup_options_->batch, cwd); for (unsigned int cmd_arg = startup_args_ + 2; cmd_arg < args.size(); cmd_arg++) { command_arguments_.push_back(args[cmd_arg]); @@ -463,7 +463,7 @@ blaze_exit_code::ExitCode OptionProcessor::ParseStartupOptions(string *error) { // and also splices in some additional terminal and environment options between // the command and the arguments. NB: Keep the options added here in sync with // BlazeCommandDispatcher.INTERNAL_COMMAND_OPTIONS! -void OptionProcessor::AddRcfileArgsAndOptions(const string& cwd) { +void OptionProcessor::AddRcfileArgsAndOptions(bool batch, const string& cwd) { // Provide terminal options as coming from the least important rc file. command_arguments_.push_back("--rc_source=client"); command_arguments_.push_back("--default_override=0:common=--isatty=" + @@ -495,20 +495,25 @@ void OptionProcessor::AddRcfileArgsAndOptions(const string& cwd) { } } - for (char** env = environ; *env != NULL; env++) { - string env_str(*env); - int pos = env_str.find("="); - if (pos != string::npos) { - string name = env_str.substr(0, pos); - if (name == "PATH") { - env_str = "PATH=" + ConvertPathList(env_str.substr(pos + 1)); - } else if (name == "TMP") { - // A valid Windows path "c:/foo" is also a valid Unix path list of - // ["c", "/foo"] so must use ConvertPath here. See GitHub issue #1684. - env_str = "TMP=" + ConvertPath(env_str.substr(pos + 1)); + // Pass the client environment to the server in server mode. + if (batch) { + command_arguments_.push_back("--ignore_client_env"); + } else { + for (char** env = environ; *env != NULL; env++) { + string env_str(*env); + int pos = env_str.find("="); + if (pos != string::npos) { + string name = env_str.substr(0, pos); + if (name == "PATH") { + env_str = "PATH=" + ConvertPathList(env_str.substr(pos + 1)); + } else if (name == "TMP") { + // A valid Windows path "c:/foo" is also a valid Unix path list of + // ["c", "/foo"] so must use ConvertPath here. See GitHub issue #1684. + env_str = "TMP=" + ConvertPath(env_str.substr(pos + 1)); + } } + command_arguments_.push_back("--client_env=" + env_str); } - command_arguments_.push_back("--client_env=" + env_str); } command_arguments_.push_back("--client_cwd=" + blaze::ConvertPath(cwd)); |