Previously a Yield object was either a file dump, or a simple
enumeration on a directories children, with no associated type state
for them. This commit implements a mechanism to internally fetch this
type information, to pass out to a user via the Yield type.
This way it is much easier to figure out which entries are
directories, and which are files. Additional queries have to be
passed into the FileTree for lookups. In a way, this commit gives up
on the idea of having a nested API structure for the time being, until
constructing sub-FileTrees becomes a real necessity
By default in Nginx, if you want to override a single fastcgi_param,
you have to override all of them. This is less of a big deal if
you're editing the Nginx configuration directly, but when you're
generating the Nginx configuration with Nix it can be very annoying to
bloat your configuration repeating the default values of FastCGI
parameters every time.
This patch adds a fastcgiParams option to Nginx locations. If any
parameters are set through this, all the default values will be
included as well, so only the ones that are changing need to be
supplied. There's no way to use fastcgiParams to actually override
all parameters if that's what you want, but I think that's a niche use
case and it's still possible using extraConfig, which up until now was
the only option
Nginx allows the fastcgi_param directive in http and server scopes as
well as location, but here I only support location. It would be
possible to support the others, but I don't think it's worth it. It
would be a possible future enhancement if somebody has a need for it.
This is required for emacs lsp to pick up where to set the root
directory for language server daemons. Ideally, a future monorepo
utility (such as nom) would create .projectile files automatically
when creating a new project in the tree.