diff options
author | 2016-04-20 15:13:51 +0000 | |
---|---|---|
committer | 2016-04-21 10:57:42 +0000 | |
commit | 3c9a2265ea043c52c81951907fbc626b8c03add4 (patch) | |
tree | 8b164b31b2b8d7bd13538bb8eed4581cc6abcc51 /src/main/cpp/option_processor.cc | |
parent | 6d26ceba17d6a9577d2c1fa3ff4f8a4516a40ec2 (diff) |
Make client-provided options an rc source
The client provides information about whether the terminal is a tty, and
which width the output should be formatted for. Passing this information
as explicit command-line arguments has the disadvantage that it overrides
any setting in configuration files. While usually there is no one-size-fits-all
value for terminal width, it doesn't make sense either to have an option
where the user cannot set a default. Fix this by providing the client options
as least imported rc-source.
This is a roll-forward of commit 044adedc70de040475443e52eb1a3c692159790e
--
MOS_MIGRATED_REVID=120338148
Diffstat (limited to 'src/main/cpp/option_processor.cc')
-rw-r--r-- | src/main/cpp/option_processor.cc | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/main/cpp/option_processor.cc b/src/main/cpp/option_processor.cc index 0696b5a8a5..3e2f662212 100644 --- a/src/main/cpp/option_processor.cc +++ b/src/main/cpp/option_processor.cc @@ -424,6 +424,14 @@ blaze_exit_code::ExitCode OptionProcessor::ParseStartupOptions(string *error) { // the command and the arguments. NB: Keep the options added here in sync with // BlazeCommandDispatcher.INTERNAL_COMMAND_OPTIONS! 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=" + + ToString(IsStandardTerminal())); + command_arguments_.push_back( + "--default_override=0:common=--terminal_columns=" + + ToString(GetTerminalColumns())); + // Push the options mapping .blazerc numbers to filenames. for (int i_blazerc = 0; i_blazerc < blazercs_.size(); i_blazerc++) { const RcFile* blazerc = blazercs_[i_blazerc]; @@ -442,17 +450,11 @@ void OptionProcessor::AddRcfileArgsAndOptions(bool batch, const string& cwd) { for (int ii = 0; ii < it->second.size(); ii++) { const RcOption& rcoption = it->second[ii]; command_arguments_.push_back( - "--default_override=" + ToString(rcoption.rcfile_index()) + ":" + "--default_override=" + ToString(rcoption.rcfile_index() + 1) + ":" + it->first + "=" + rcoption.option()); } } - // Splice the terminal options. - command_arguments_.push_back( - "--isatty=" + ToString(IsStandardTerminal())); - command_arguments_.push_back( - "--terminal_columns=" + ToString(GetTerminalColumns())); - // Pass the client environment to the server in server mode. if (batch) { command_arguments_.push_back("--ignore_client_env"); |