On Wed, Dec 02, 2015 at 10:07:23AM +0200, Ludovic Courtès wrote: > David Thompson <[email protected]> skribis: > > > Looking for some feedback on my first stab at making the nginx service > > extensible. With this extension mechanism, future web applications > > (such as GNU MediaGoblin) that use nginx as a front-end web server will > > be able to extend nginx with the server configuration that they need in > > order to work. > > Excellent! > > > Here's a useless service that adds nginx configuration to serve the > > contents of /tmp: > > > > (define server > > (plain-file "foo.conf" > > " > > server { > > listen 80; > > root /tmp; > > index index.html; > > server_name dthompson.us; > > } > > ")) > > Do you think it would make sense to provide Scheme bindings for those > ‘server’ configuration snippets, or would we lose too much > expressiveness?
I think you might lose too much, although I don't use GuixSD so I don't know if there are other programs that are configured through Scheme bindings. I know that I don't like the Nix bindings for systemd in NixOS. They can't keep up with the pace of development in systemd and provide a limited set of features. > > > From 108db2d183526c42b53060e55f7fb292b53663cb Mon Sep 17 00:00:00 2001 > > From: David Thompson <[email protected]> > > Date: Mon, 30 Nov 2015 08:49:08 -0500 > > Subject: [PATCH] services: nginx: Allow for server extensions. > > > > * gnu/services/web.scm (<nginx-configuration>)[servers]: New field. > > (nginx-configuration-servers): New accessor. > > (default-nginx-config): Delete. > > (nginx-configuration-file*): New procedure. > > (nginx-activation): Perform the syntax check on the full computed > > configuration file. > > (nginx-dmd-service): Use the full computed configuration file when > > starting the service. > > (extend-nginx): New procedure. > > (nginx-service-type): Specify extension procedures. > > (nginx-service): Add #:servers argument. > > [...] > > > +(define (nginx-configuration-file* config) > > ‘nginx-configuration->file’ maybe? > > Otherwise LGTM! > > As an exercise, and while waiting for Chris to finish packaging > MediaGoblin ;-), it might make sense to try to use nginx in > ‘guix-publish-service’ or a variant thereof. > > Thank you! > > Ludo’. >
