From 65e38b7c52976007a2bed5d6b971073cdb9f5bbd Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sun, 2 Jul 2017 19:06:44 +0100 Subject: bitlbee service: Add option to load libpurple plugins into bitlbee --- nixos/modules/services/networking/bitlbee.nix | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'nixos/modules/services') diff --git a/nixos/modules/services/networking/bitlbee.nix b/nixos/modules/services/networking/bitlbee.nix index e72ea20cccee..bd26804788f3 100644 --- a/nixos/modules/services/networking/bitlbee.nix +++ b/nixos/modules/services/networking/bitlbee.nix @@ -7,6 +7,10 @@ let cfg = config.services.bitlbee; bitlbeeUid = config.ids.uids.bitlbee; + bitlbeePkg = if cfg.libpurple_plugins == [] + then pkgs.bitlbee + else pkgs.bitlbee.override { enableLibPurple = true; }; + bitlbeeConfig = pkgs.writeText "bitlbee.conf" '' [settings] @@ -25,6 +29,12 @@ let ${cfg.extraDefaults} ''; + purple_plugin_path = + lib.concatMapStringsSep ":" + (plugin: "${plugin}/lib/pidgin/") + cfg.libpurple_plugins + ; + in { @@ -90,6 +100,15 @@ in ''; }; + libpurple_plugins = mkOption { + type = types.listOf types.package; + default = []; + example = literalExample "[ pkgs.purple-matrix ]"; + description = '' + The list of libpurple plugins to install. + ''; + }; + configDir = mkOption { default = "/var/lib/bitlbee"; type = types.path; @@ -144,14 +163,16 @@ in }; systemd.services.bitlbee = - { description = "BitlBee IRC to other chat networks gateway"; + { + environment.PURPLE_PLUGIN_PATH = purple_plugin_path; + description = "BitlBee IRC to other chat networks gateway"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; serviceConfig.User = "bitlbee"; - serviceConfig.ExecStart = "${pkgs.bitlbee}/sbin/bitlbee -F -n -c ${bitlbeeConfig}"; + serviceConfig.ExecStart = "${bitlbeePkg}/sbin/bitlbee -F -n -c ${bitlbeeConfig}"; }; - environment.systemPackages = [ pkgs.bitlbee ]; + environment.systemPackages = [ bitlbeePkg ]; }; -- cgit 1.4.1