about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2023-12-07 09:07:35 +0200
committerGitHub <noreply@github.com>2023-12-07 09:07:35 +0200
commit4db2e0cc80f38b19f92fcddd846f6bf6caf7ea60 (patch)
tree060b33ea5fa08946457043f0f611adb75c3ac292 /nixos
parent53755e6dbd153ffc4724addb354d59a0993eeebc (diff)
parent3c6b3d71fa696da5c170c0ff44eaa8c51999a80c (diff)
downloadnixlib-4db2e0cc80f38b19f92fcddd846f6bf6caf7ea60.tar
nixlib-4db2e0cc80f38b19f92fcddd846f6bf6caf7ea60.tar.gz
nixlib-4db2e0cc80f38b19f92fcddd846f6bf6caf7ea60.tar.bz2
nixlib-4db2e0cc80f38b19f92fcddd846f6bf6caf7ea60.tar.lz
nixlib-4db2e0cc80f38b19f92fcddd846f6bf6caf7ea60.tar.xz
nixlib-4db2e0cc80f38b19f92fcddd846f6bf6caf7ea60.tar.zst
nixlib-4db2e0cc80f38b19f92fcddd846f6bf6caf7ea60.zip
Merge pull request #272542 from Sohalt/caddy-config-file
nixos/caddy: use caddyfile adapter by default with explicit configFile
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/web-servers/caddy/default.nix6
-rw-r--r--nixos/tests/caddy.nix15
2 files changed, 18 insertions, 3 deletions
diff --git a/nixos/modules/services/web-servers/caddy/default.nix b/nixos/modules/services/web-servers/caddy/default.nix
index 497aa9ba956e..9a544e98cfc4 100644
--- a/nixos/modules/services/web-servers/caddy/default.nix
+++ b/nixos/modules/services/web-servers/caddy/default.nix
@@ -147,7 +147,7 @@ in
       default = configFile;
       defaultText = "A Caddyfile automatically generated by values from services.caddy.*";
       example = literalExpression ''
-        pkgs.writeTextDir "Caddyfile" '''
+        pkgs.writeText "Caddyfile" '''
           example.com
 
           root * /var/www/wordpress
@@ -164,9 +164,9 @@ in
     };
 
     adapter = mkOption {
-      default = if (builtins.baseNameOf cfg.configFile) == "Caddyfile" then "caddyfile" else null;
+      default = if ((cfg.configFile != configFile) || (builtins.baseNameOf cfg.configFile) == "Caddyfile") then "caddyfile" else null;
       defaultText = literalExpression ''
-        if (builtins.baseNameOf cfg.configFile) == "Caddyfile" then "caddyfile" else null
+        if ((cfg.configFile != configFile) || (builtins.baseNameOf cfg.configFile) == "Caddyfile") then "caddyfile" else null
       '';
       example = literalExpression "nginx";
       type = with types; nullOr str;
diff --git a/nixos/tests/caddy.nix b/nixos/tests/caddy.nix
index 5a0d3539394b..41d8e57de468 100644
--- a/nixos/tests/caddy.nix
+++ b/nixos/tests/caddy.nix
@@ -48,11 +48,19 @@ import ./make-test-python.nix ({ pkgs, ... }: {
           };
         };
       };
+      specialisation.explicit-config-file.configuration = {
+        services.caddy.configFile = pkgs.writeText "Caddyfile" ''
+        localhost:80
+
+        respond "hello world"
+        '';
+      };
     };
   };
 
   testScript = { nodes, ... }:
     let
+      explicitConfigFile = "${nodes.webserver.system.build.toplevel}/specialisation/explicit-config-file";
       justReloadSystem = "${nodes.webserver.system.build.toplevel}/specialisation/config-reload";
       multipleConfigs = "${nodes.webserver.system.build.toplevel}/specialisation/multiple-configs";
       rfc42Config = "${nodes.webserver.system.build.toplevel}/specialisation/rfc42";
@@ -84,5 +92,12 @@ import ./make-test-python.nix ({ pkgs, ... }: {
           )
           webserver.wait_for_open_port(80)
           webserver.succeed("curl http://localhost | grep hello")
+
+      with subtest("explicit configFile"):
+          webserver.succeed(
+              "${explicitConfigFile}/bin/switch-to-configuration test >&2"
+          )
+          webserver.wait_for_open_port(80)
+          webserver.succeed("curl http://localhost | grep hello")
     '';
 })