pet: fix settings format issue

Before it was not possible to place setting values outside the
`General` section.
main
Mmequignon 3 years ago committed by Robert Helgesson
parent 5559ef0023
commit d85bf67c48
No known key found for this signature in database
GPG Key ID: 36BDAA14C2797E89
  1. 11
      docs/release-notes/rl-2111.adoc
  2. 21
      modules/programs/pet.nix
  3. 6
      tests/modules/programs/pet/default.nix
  4. 26
      tests/modules/programs/pet/settings_21_05.nix
  5. 42
      tests/modules/programs/pet/settings_21_11.nix

@ -45,3 +45,14 @@ changes are only active if the `home.stateVersion` option is set to
"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-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";

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

@ -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;
}

@ -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"
''
}
'';
}

@ -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"
''
}
'';
}
Loading…
Cancel
Save