sway: make it possible to alter conf in preCheckConfig

Some situations may require altering the config file itself to remove or
adjust things. While this of course reduces the correctness of the
check, it may be better to lose a little than be forced to disable the
check altogether.
This commit is contained in:
Andrew Marshall 2024-04-21 09:20:30 -04:00
parent 66a558e507
commit 5256fd07ba
2 changed files with 10 additions and 3 deletions

View file

@ -269,8 +269,9 @@ let
checkPhase = lib.optionalString cfg.checkConfig '' checkPhase = lib.optionalString cfg.checkConfig ''
export DBUS_SESSION_BUS_ADDRESS=/dev/null export DBUS_SESSION_BUS_ADDRESS=/dev/null
export XDG_RUNTIME_DIR=$(mktemp -d) export XDG_RUNTIME_DIR=$(mktemp -d)
cp "$target" sway.conf
${cfg.preCheckConfig} ${cfg.preCheckConfig}
${pkgs.xvfb-run}/bin/xvfb-run ${swayPackage}/bin/sway --config "$target" --validate --unsupported-gpu ${pkgs.xvfb-run}/bin/xvfb-run ${swayPackage}/bin/sway --config sway.conf --validate --unsupported-gpu
''; '';
text = concatStringsSep "\n" text = concatStringsSep "\n"
@ -483,12 +484,15 @@ in {
type = types.lines; type = types.lines;
default = ""; default = "";
example = '' example = ''
sed 's/foo/bar/g' -i sway.conf
export HOME=$(mktemp -d) export HOME=$(mktemp -d)
touch ~/background.png touch ~/background.png
''; '';
description = '' description = ''
Script to run before running `sway --validate` on the generated config Script to run before running `sway --validate` on the generated config
file. Only used if `checkConfig = true`. file. The config file is available as `sway.conf`, and can be
manipulated without affecting the build output. Only used if
`checkConfig = true`.
''; '';
}; };

View file

@ -6,12 +6,15 @@ lib.mkIf config.test.enableBig {
checkConfig = true; checkConfig = true;
preCheckConfig = '' preCheckConfig = ''
export HOME=$(mktemp -d) export HOME=$(mktemp -d)
touch ~/mybg.png sed 's/mybg/otherbg/g' -i sway.conf
touch ~/otherbg.png
''; '';
config.output."*".background = "~/mybg.png fill"; config.output."*".background = "~/mybg.png fill";
}; };
nmt.script = '' nmt.script = ''
assertFileExists home-files/.config/sway/config assertFileExists home-files/.config/sway/config
assertFileRegex home-files/.config/sway/config 'mybg\.png'
assertFileNotRegex home-files/.config/sway/config 'otherbg\.png'
''; '';
} }