diff --git a/nixos/modules/services/logging/logrotate.nix b/nixos/modules/services/logging/logrotate.nix index 92878f055ce8..caaecb7bc0ee 100644 --- a/nixos/modules/services/logging/logrotate.nix +++ b/nixos/modules/services/logging/logrotate.nix @@ -91,9 +91,9 @@ let # files required to exist also won't be present, so missingok is forced. user=$(${pkgs.buildPackages.coreutils}/bin/id -un) group=$(${pkgs.buildPackages.coreutils}/bin/id -gn) - sed -e "s/\bsu\s.*/su $user $group/" \ - -e "s/\b\(create\s\+[0-9]*\s*\|createolddir\s\+[0-9]*\s\+\).*/\1$user $group/" \ - -e "1imissingok" -e "s/\bnomissingok\b//" \ + sed -E -e "s/\bsu\s.*/su $user $group/" \ + -e "s/\b((create|createolddir)\b(\s+[0-9]+)?).*/\1 $user $group/" \ + -e "1imissingok" -e "s/\bnomissingok\b//" \ $out > logrotate.conf # Since this makes for very verbose builds only show real error. # There is no way to control log level, but logrotate hardcodes diff --git a/nixos/tests/logrotate.nix b/nixos/tests/logrotate.nix index 603a0f164c46..1e9cdfd45614 100644 --- a/nixos/tests/logrotate.nix +++ b/nixos/tests/logrotate.nix @@ -66,8 +66,10 @@ in checkConf = { su = "root utmp"; createolddir = "0750 root utmp"; + "createolddir " = "0750"; create = "root utmp"; "create " = "0750 root utmp"; + "create " = "0750"; }; # multiple paths should be aggregated multipath = {