pet: fix settings format issue

Before it was not possible to place setting values outside the
`General` section.
This commit is contained in:
Mmequignon 2021-10-27 19:13:07 +02:00 committed by Robert Helgesson
parent 5559ef0023
commit d85bf67c48
No known key found for this signature in database
GPG key ID: 36BDAA14C2797E89
5 changed files with 99 additions and 7 deletions

View file

@ -45,3 +45,14 @@ changes are only active if the `home.stateVersion` option is set to
"21.11" or later. "21.11" or later.
* The <<opt-home.keyboard>> option now defaults to `null`, meaning that Home Manager won't do any keyboard layout management. For example, `setxkbmap` won't be run in X sessions. * The <<opt-home.keyboard>> option now defaults to `null`, meaning that Home Manager won't do any keyboard layout management. For example, `setxkbmap` won't be run in X sessions.
* The <<opt-programs.pet.settings>> option no longer place its value inside a `General` attribute.
For example, is you before had
+
[source,nix]
programs.pet.settings.editor = "nvim";
+
then you now need
+
[source,nix]
programs.pet.settings.General.editor = "nvim";

View file

@ -80,16 +80,25 @@ in {
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.pet.settings = { programs.pet.settings = let
defaultGeneral = {
selectcmd = mkDefault "fzf"; selectcmd = mkDefault "fzf";
snippetfile = config.xdg.configHome + "/pet/snippet.toml"; snippetfile = config.xdg.configHome + "/pet/snippet.toml";
}; };
in if versionAtLeast config.home.stateVersion "21.11" then {
General = defaultGeneral;
} else
defaultGeneral;
home.packages = [ pkgs.pet cfg.selectcmdPackage ]; home.packages = [ pkgs.pet cfg.selectcmdPackage ];
xdg.configFile = { xdg.configFile = {
"pet/config.toml".source = "pet/config.toml".source = format.generate "config.toml"
format.generate "config.toml" { General = cfg.settings; }; (if versionAtLeast config.home.stateVersion "21.11" then
cfg.settings
else {
General = cfg.settings;
});
"pet/snippet.toml".source = "pet/snippet.toml".source =
format.generate "snippet.toml" { snippets = cfg.snippets; }; format.generate "snippet.toml" { snippets = cfg.snippets; };
}; };

View file

@ -1 +1,5 @@
{ pet-snippets = ./snippets.nix; } {
pet-snippets = ./snippets.nix;
pet-settings_21_05 = ./settings_21_05.nix;
pet-settings_21_11 = ./settings_21_11.nix;
}

View file

@ -0,0 +1,26 @@
{ config, lib, pkgs, ... }:
with lib;
{
home.stateVersion = "21.05";
programs.pet = {
enable = true;
selectcmdPackage = config.lib.test.mkStubPackage { };
settings.editor = "nvim";
};
test.stubs.pet = { };
nmt.script = ''
assertFileContent home-files/.config/pet/config.toml \
${
builtins.toFile "pet-settings.toml" ''
[General]
editor = "nvim"
selectcmd = "fzf"
snippetfile = "/home/hm-user/.config/pet/snippet.toml"
''
}
'';
}

View file

@ -0,0 +1,42 @@
{ config, lib, pkgs, ... }:
with lib;
{
home.stateVersion = "21.11";
programs.pet = {
enable = true;
selectcmdPackage = config.lib.test.mkStubPackage { };
settings = {
General = {
backend = "Gitlab";
editor = "nvim";
};
Gitlab = {
access_token = "1234";
file_name = "pet-snippets.toml";
visibility = "public";
};
};
};
test.stubs.pet = { };
nmt.script = ''
assertFileContent home-files/.config/pet/config.toml \
${
builtins.toFile "pet-settings.toml" ''
[General]
backend = "Gitlab"
editor = "nvim"
selectcmd = "fzf"
snippetfile = "/home/hm-user/.config/pet/snippet.toml"
[Gitlab]
access_token = "1234"
file_name = "pet-snippets.toml"
visibility = "public"
''
}
'';
}