mirror of
https://github.com/nix-community/home-manager
synced 2024-11-30 06:59:45 +01:00
pet: fix settings format issue
Before it was not possible to place setting values outside the `General` section.
This commit is contained in:
parent
5559ef0023
commit
d85bf67c48
5 changed files with 99 additions and 7 deletions
|
@ -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 = {
|
||||
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;
|
||||
}
|
||||
|
|
26
tests/modules/programs/pet/settings_21_05.nix
Normal file
26
tests/modules/programs/pet/settings_21_05.nix
Normal 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"
|
||||
''
|
||||
}
|
||||
'';
|
||||
}
|
42
tests/modules/programs/pet/settings_21_11.nix
Normal file
42
tests/modules/programs/pet/settings_21_11.nix
Normal 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"
|
||||
''
|
||||
}
|
||||
'';
|
||||
}
|
Loading…
Reference in a new issue