parent
2678fb3441
commit
0a1ce53990
|
@ -1333,6 +1333,13 @@ in
|
|||
A new module is available: 'wayland.windowManager.sway'
|
||||
'';
|
||||
}
|
||||
{
|
||||
time = "2020-03-04T18:55:03+00:00";
|
||||
condition = hostPlatform.isLinux;
|
||||
message = ''
|
||||
A new module is available: 'programs.abook'
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -37,6 +37,7 @@ let
|
|||
(loadModule ./misc/xdg-mime-apps.nix { condition = hostPlatform.isLinux; })
|
||||
(loadModule ./misc/xdg-user-dirs.nix { condition = hostPlatform.isLinux; })
|
||||
(loadModule ./misc/xdg.nix { })
|
||||
(loadModule ./programs/abook.nix { condition = hostPlatform.isLinux; })
|
||||
(loadModule ./programs/afew.nix { })
|
||||
(loadModule ./programs/alacritty.nix { })
|
||||
(loadModule ./programs/alot.nix { })
|
||||
|
|
40
modules/programs/abook.nix
Normal file
40
modules/programs/abook.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfg = config.programs.abook;
|
||||
|
||||
in {
|
||||
options.programs.abook = {
|
||||
enable = mkEnableOption "Abook";
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
example = ''
|
||||
field pager = Pager
|
||||
view CONTACT = name, email
|
||||
set autosave=true
|
||||
'';
|
||||
description = ''
|
||||
Extra lines added to <filename>$HOME/.config/abook/abookrc</filename>.
|
||||
Available configuration options are described in the abook repository:
|
||||
<link xlink:href="https://sourceforge.net/p/abook/git/ci/master/tree/sample.abookrc" />.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = [ pkgs.abook ];
|
||||
xdg.configFile."abook/abookrc" = mkIf (cfg.extraConfig != "") {
|
||||
text = ''
|
||||
# Generated by Home Manager.
|
||||
# See http://abook.sourceforge.net/
|
||||
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
|
@ -43,6 +43,7 @@ import nmt {
|
|||
./modules/programs/zsh
|
||||
./modules/xresources
|
||||
] ++ lib.optionals pkgs.stdenv.hostPlatform.isLinux [
|
||||
./modules/programs/abook
|
||||
./modules/misc/pam
|
||||
./modules/misc/xdg
|
||||
./modules/misc/xsession
|
||||
|
|
4
tests/modules/programs/abook/default.nix
Normal file
4
tests/modules/programs/abook/default.nix
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
abook-no-settings = ./no-settings.nix;
|
||||
abook-with-settings = ./with-settings.nix;
|
||||
}
|
13
tests/modules/programs/abook/no-settings.nix
Normal file
13
tests/modules/programs/abook/no-settings.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
config = {
|
||||
programs.abook.enable = true;
|
||||
|
||||
nmt.script = ''
|
||||
assertPathNotExists home-files/.config/abook/abookrc
|
||||
'';
|
||||
};
|
||||
}
|
21
tests/modules/programs/abook/with-settings.cfg
Normal file
21
tests/modules/programs/abook/with-settings.cfg
Normal file
|
@ -0,0 +1,21 @@
|
|||
# Generated by Home Manager.
|
||||
# See http://abook.sourceforge.net/
|
||||
|
||||
# Defining a new custom field
|
||||
# -----------------------------
|
||||
|
||||
field pager = Pager
|
||||
field address_lines = Address, list
|
||||
field birthday = Birthday, date
|
||||
|
||||
# Defining a view/tab
|
||||
# ---------------------
|
||||
|
||||
view CONTACT = name, email
|
||||
view ADDRESS = address_lines, city, state, zip, country
|
||||
view PHONE = phone, workphone, pager, mobile, fax
|
||||
view OTHER = url, birthday
|
||||
|
||||
# Automatically save database on exit
|
||||
set autosave=true
|
||||
|
36
tests/modules/programs/abook/with-settings.nix
Normal file
36
tests/modules/programs/abook/with-settings.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
config = {
|
||||
programs.abook = {
|
||||
enable = true;
|
||||
|
||||
extraConfig = ''
|
||||
# Defining a new custom field
|
||||
# -----------------------------
|
||||
|
||||
field pager = Pager
|
||||
field address_lines = Address, list
|
||||
field birthday = Birthday, date
|
||||
|
||||
# Defining a view/tab
|
||||
# ---------------------
|
||||
|
||||
view CONTACT = name, email
|
||||
view ADDRESS = address_lines, city, state, zip, country
|
||||
view PHONE = phone, workphone, pager, mobile, fax
|
||||
view OTHER = url, birthday
|
||||
|
||||
# Automatically save database on exit
|
||||
set autosave=true
|
||||
'';
|
||||
};
|
||||
|
||||
nmt.script = ''
|
||||
assertFileExists home-files/.config/abook/abookrc
|
||||
assertFileContent home-files/.config/abook/abookrc ${./with-settings.cfg}
|
||||
'';
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue