[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#37388: <nginx-configuration> can lead to syntactically invalid confi
bug#37388: <nginx-configuration> can lead to syntactically invalid configs
Thu, 12 Sep 2019 09:57:13 +0200
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)
It’s nice that we have <nginx-configuration> but I noticed that, unlike
most or all other configuration records that we have, it’s possible to
create an <nginx-configuration> record that leads to a syntactically
invalid nginx config file.
For example, if you have a location block like this:
(body (list "alias /srv/guix-manual")))
Guix will silently create an invalid nginx config file, which you’ll
only notice once you’ve reconfigured and nginx fails to start.
See why? That’s because we’re missing a semicolon in the “alias”
directive, and that directive is spit out directly as is.
To address it, we could have record types for <alias>, <root>, and all
the directives out there; it could be tedious, unless we automate it,
effectively creating a complete EDSL.
Another approach would be to have an sexp representation of the nginx
configuration language. That’d effectively replace semicolons with
parentheses :-), but more importantly, that would allow us to not paste
strings as-is in the resulting config file. The downside is that it’s
very much “free style” compared to records, but we could still
pattern-match the sexp to validate certain properties.
- bug#37388: <nginx-configuration> can lead to syntactically invalid configs,
Ludovic Courtès <=