Support loading config from multiple files.
Review Request #1442 - Created Dec. 8, 2014 and submitted
|jsirois, patricklaw, zundel|
This subsumes two disparate pieces of functionality:
A) This env variable has been retconned int a --config-overrides
B) Rcfiles used to contain extra command-line flags for various commands, which
was weird. Since all flags are now options, and so can be set from config,
the new rcfiles are just regular pants.ini-style config files.
After deploying pants with this commit, existing rcfiles will need to be converted
to pants.ini style. However currently rcfiles are broken anyway, so this isn't
an onerous requirement.
This commit also includes various changes needed to get things to work under
this new config scheme. Some of these are temporary hacks that will go away
when we get rid of Command, or when we get rid of all direct accesses to config.
One prominent change is a modification to config caching. Previously
configs were keyed by the file they were read from. But in practice
code always calls Config.from_cache() with no argument, which
defaults to the regular pants.ini. This leads to dangerous confusion
when config can be read from other files. So now there's just a single
global cached config, which must be set explicitly. Again, this will
go away once we convert all direct config accesses to options accesses,
and plumb options through to all the necessary places.