abook: add module

PR #1058
This commit is contained in:
MmeQuignon 2020-02-29 23:13:12 +01:00 committed by Robert Helgesson
parent 2678fb3441
commit 0a1ce53990
No known key found for this signature in database
GPG key ID: 36BDAA14C2797E89
8 changed files with 123 additions and 0 deletions

View file

@ -1333,6 +1333,13 @@ in
A new module is available: 'wayland.windowManager.sway' 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'
'';
}
]; ];
}; };
} }

View file

@ -37,6 +37,7 @@ let
(loadModule ./misc/xdg-mime-apps.nix { condition = hostPlatform.isLinux; }) (loadModule ./misc/xdg-mime-apps.nix { condition = hostPlatform.isLinux; })
(loadModule ./misc/xdg-user-dirs.nix { condition = hostPlatform.isLinux; }) (loadModule ./misc/xdg-user-dirs.nix { condition = hostPlatform.isLinux; })
(loadModule ./misc/xdg.nix { }) (loadModule ./misc/xdg.nix { })
(loadModule ./programs/abook.nix { condition = hostPlatform.isLinux; })
(loadModule ./programs/afew.nix { }) (loadModule ./programs/afew.nix { })
(loadModule ./programs/alacritty.nix { }) (loadModule ./programs/alacritty.nix { })
(loadModule ./programs/alot.nix { }) (loadModule ./programs/alot.nix { })

View 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}
'';
};
};
}

View file

@ -43,6 +43,7 @@ import nmt {
./modules/programs/zsh ./modules/programs/zsh
./modules/xresources ./modules/xresources
] ++ lib.optionals pkgs.stdenv.hostPlatform.isLinux [ ] ++ lib.optionals pkgs.stdenv.hostPlatform.isLinux [
./modules/programs/abook
./modules/misc/pam ./modules/misc/pam
./modules/misc/xdg ./modules/misc/xdg
./modules/misc/xsession ./modules/misc/xsession

View file

@ -0,0 +1,4 @@
{
abook-no-settings = ./no-settings.nix;
abook-with-settings = ./with-settings.nix;
}

View file

@ -0,0 +1,13 @@
{ config, lib, pkgs, ... }:
with lib;
{
config = {
programs.abook.enable = true;
nmt.script = ''
assertPathNotExists home-files/.config/abook/abookrc
'';
};
}

View 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

View 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}
'';
};
}