From d582ac052d6fb9305c97944ad385d4e9c6d453e9 Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Thu, 19 Sep 2024 22:25:37 +0200 Subject: [PATCH] nixos/wordpress: fix tests --- nixos/modules/services/web-apps/wordpress.nix | 9 ++++++--- nixos/tests/wordpress.nix | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/nixos/modules/services/web-apps/wordpress.nix b/nixos/modules/services/web-apps/wordpress.nix index ea771c358814d..38b5e2c52d896 100644 --- a/nixos/modules/services/web-apps/wordpress.nix +++ b/nixos/modules/services/web-apps/wordpress.nix @@ -75,13 +75,16 @@ let mkPhpValue = v: let isHasAttr = s: isAttrs v && hasAttr s v; + # "you're escaped" -> "'you\'re escaped'" + # https://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.single + toPhpString = s: "'${escape [ "'" "\\" ] s}'"; in - if isString v then escapeShellArg v + if isString v then toPhpString v # NOTE: If any value contains a , (comma) this will not get escaped - else if isList v && any lib.strings.isCoercibleToString v then escapeShellArg (concatMapStringsSep "," toString v) + else if isList v && any lib.strings.isCoercibleToString v then toPhpString (concatMapStringsSep "," toString v) else if isInt v then toString v else if isBool v then boolToString v - else if isHasAttr "_file" then "trim(file_get_contents(${lib.escapeShellArg v._file}))" + else if isHasAttr "_file" then "trim(file_get_contents(${toPhpString v._file}))" else if isHasAttr "_raw" then v._raw else abort "The Wordpress config value ${lib.generators.toPretty {} v} can not be encoded." ; diff --git a/nixos/tests/wordpress.nix b/nixos/tests/wordpress.nix index 592af9a094f1d..a2cd480302986 100644 --- a/nixos/tests/wordpress.nix +++ b/nixos/tests/wordpress.nix @@ -11,7 +11,7 @@ rec { }; nodes = lib.foldl (a: version: let - package = pkgs."wordpress${version}"; + package = pkgs."wordpress_${version}"; in a // { "wp${version}_httpd" = _: { services.httpd.adminAddr = "webmaster@site.local"; @@ -67,7 +67,7 @@ rec { networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ]; }; }) {} [ - "6_3" "6_4" + "6_5" "6_6" ]; testScript = ''