mirror of
https://github.com/nix-community/home-manager
synced 2024-11-26 21:19: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.
|
"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";
|
||||||
|
|
|
@ -80,16 +80,25 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.pet.settings = {
|
programs.pet.settings = let
|
||||||
selectcmd = mkDefault "fzf";
|
defaultGeneral = {
|
||||||
snippetfile = config.xdg.configHome + "/pet/snippet.toml";
|
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 ];
|
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; };
|
||||||
};
|
};
|
||||||
|
|
|
@ -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