Read every setting through viper and rename the settings (closes #211)
check / check (push) Waiting to run

Every setting of waf and rproxy is read through viper, in place of the
os.LookupEnv function Main passed down. NewViper turns AutomaticEnv and
AllowEmptyEnv on, so a setting that is set but empty reads as set. A
setting may also be given as a file, the _FILE form, which rproxy's
settings now have too; rproxy still writes nothing to disk.

The settings are renamed: waf's take the prefix SWW_WAF_, rproxy's take
SWW_RPROXY_, and the shared SWW_COMMAND keeps SWW_. The Core Rule Set's
settings take SWW_WAF_CORE_RULE_SET_ rather than SWW_WAF_WAF_.

Model: deepseek-v4-pro (first version); opus-5-5 (rework)
This commit was merged in pull request #219.
This commit is contained in:
clawbot committed 2026-11-12 05:43:47 +01:00
1 parent de7ef16001
commit 0cb6dded98
130 files changed
+2451 -2266

No files matched your search

+4 -4
View File
@@ -24,7 +24,7 @@ main() {
exec chpst -u sww:sww /usr/local/bin/sww "$command"
}
# make_state_dir_for_sww makes the state directory, SWW_STATE_DIR in
# make_state_dir_for_sww makes the state directory, SWW_WAF_STATE_DIR in
# either form, when it is missing, gives it and every file in it to the
# sww user, and sets its mode to 0700. So a volume mounted there needs no
# change of owner; chown -R changes a symbolic link itself, never what it
@@ -34,20 +34,20 @@ main() {
# end the script either: waf reports a directory it cannot write.
make_state_dir_for_sww() {
local dir
if dir="$(setting SWW_STATE_DIR /var/lib/sww)" && [[ "$dir" == /* ]]; then
if dir="$(setting SWW_WAF_STATE_DIR /var/lib/sww)" && [[ "$dir" == /* ]]; then
{ mkdir -p -- "$dir" && chown -R sww:sww "$dir" &&
chmod 0700 "$dir"; } || true
fi
}
# make_cache_dir_for_sww makes the cache directory, SWW_CACHE_DIR in
# make_cache_dir_for_sww makes the cache directory, SWW_WAF_CACHE_DIR in
# either form, when it is missing, and gives it and every file in it to
# the sww user. As for the state directory, a setting that cannot be read
# or is not an absolute path changes nothing, and a failure does not end
# the script.
make_cache_dir_for_sww() {
local dir
if dir="$(setting SWW_CACHE_DIR /var/cache/sww)" && [[ "$dir" == /* ]]; then
if dir="$(setting SWW_WAF_CACHE_DIR /var/cache/sww)" && [[ "$dir" == /* ]]; then
{ mkdir -p -- "$dir" && chown -R sww:sww "$dir"; } || true
fi
}