config: allow reading both the defaults file and the modified config
commit97c5bcec136eb549b57cdb74ebd9da7ca1338e90
authorEli Schwartz <eschwartz@archlinux.org>
Sun, 15 Apr 2018 14:29:43 +0000 (15 10:29 -0400)
committerLukas Fleischer <lfleischer@archlinux.org>
Sun, 22 Apr 2018 07:26:10 +0000 (22 09:26 +0200)
treef22f3a7cd366f695fd1ef004140f0f8497bcd186
parent2b280ea3d864d80da1a49c982867d261ec865e43
config: allow reading both the defaults file and the modified config

In the process, rename config.proto to config.defaults (because that is
what it is now).

Also use dict.get('key', default_value) when querying os.environ, rather
than an if block, as it is more pythonic/readable/concise, and reduces
the number of dict lookups.

This change allows aurweb configuration to be done via either:
- copying config.defaults to config and modifying values
- creating a new config only containing modified values, next to a
  config.defaults containing unmodified values

The motivation for this change is to enable ansible configuration in our
flagship deployment by storing only changed values, and deferring to
config.defaults otherwise.

A side benefit is, it is easier to see what has changed by inspecting
only the site configuration file.

If a config.defaults file does not exist next to $AUR_CONFIG or in
$AUR_CONFIG_DEFAULTS, it is ignored and *all* values are expected to
live in the modified config file.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
INSTALL
TESTING
aurweb/config.py
conf/config.defaults [moved from conf/config.proto with 100% similarity]
web/lib/confparser.inc.php