standalone: Allow to extend a standalone derivation with a new module (#1142)

This adds the `nixvimExtend` attribute to the generated standalone
derivation, this attribute takes a module as an argument and returns a
new standalone derivation with the initial module & the extended module
merged together.
This commit is contained in:
traxys 2024-02-22 08:22:21 +01:00 committed by GitHub
parent 66c019d638
commit 9cd3721adf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 91 additions and 24 deletions

28
tests/extend.nix Normal file
View file

@ -0,0 +1,28 @@
{
makeNixvimWithModule,
pkgs,
}: let
firstStage = makeNixvimWithModule {
module = {
extraConfigLua = "-- first stage";
};
};
secondStage = firstStage.nixvimExtend {extraConfigLua = "-- second stage";};
generated = secondStage.nixvimExtend {extraConfigLua = "-- third stage";};
in
pkgs.runCommand "extend-test" {
printConfig = "${generated}/bin/nixvim-print-init";
} ''
config=$($printConfig)
for stage in "first" "second" "third"; do
if ! "$printConfig" | grep -q -- "-- $stage stage"; then
echo "Missing $stage stage in config"
echo "$config"
exit 1
fi
done
touch $out
''