From 9b49a9d5b39361964a6654549f3169592d355358 Mon Sep 17 00:00:00 2001 From: sneak Date: Mon, 28 Sep 2026 10:32:05 +0000 Subject: [PATCH] Say that a config file's env: section overrides the environment (closes #128) A variable named in the config file's env: section is set while the file loads, so it overrides both the environment the process was started with and the file's own key. README.md and the config.example.yml header said only that a variable wins over the file; they now state this exception where the precedence is given. Model: opus-5-5 --- README.md | 11 +++++++---- config.example.yml | 5 ++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 3f300b4..4c4d859 100644 --- a/README.md +++ b/README.md @@ -128,10 +128,13 @@ For the same image at quality 40 with fit `contain`, the input ends in Every setting can be given as an environment variable, in a YAML config file (`--config`), or both. A variable present in the environment wins over the file, even when it is empty, and the file wins over the built-in -default. A variable's value is parsed as the same text in the file would -be. The three lists take comma-separated entries, with the spaces around -each trimmed; an empty variable is an empty list. A value that does not -parse or is invalid aborts startup, naming the variable. +default. The one exception is a variable named in the file's `env:` section: +it is set while the file loads, so it overrides both the environment the +process was started with and the file's own key. A variable's value is +parsed as the same text in the file would be. The three lists take +comma-separated entries, with the spaces around each trimmed; an empty +variable is an empty list. A value that does not parse or is invalid aborts +startup, naming the variable. | Variable | Config key | Meaning | | ------------------------------------ | ------------------------------- | ---------------------------------------------------------------------------- | diff --git a/config.example.yml b/config.example.yml index 3edac9e..8df6a35 100644 --- a/config.example.yml +++ b/config.example.yml @@ -4,7 +4,10 @@ # this file: PIXA_ plus the key in upper case, with "." written as "_" # (state_dir is PIXA_STATE_DIR, metrics.username is # PIXA_METRICS_USERNAME). The one exception is port, which is set by -# PORT. In a variable, a list is comma-separated. +# PORT. In a variable, a list is comma-separated. A variable named in +# this file's env: section is set while the file loads, so it overrides +# both the environment the process was started with and this file's own +# key. # Server settings port: 8080