From e7c9266a70f89790df599279f0dfebe7949361a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Batlle=20i=20Rossell?= Date: Wed, 13 Apr 2011 17:35:19 +0000 Subject: [PATCH] Adding a poor openldap server module. svn path=/nixos/trunk/; revision=26822 --- modules/module-list.nix | 1 + modules/services/databases/openldap.nix | 58 +++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 modules/services/databases/openldap.nix diff --git a/modules/module-list.nix b/modules/module-list.nix index 265f8e604ab..aa43ccc3741 100644 --- a/modules/module-list.nix +++ b/modules/module-list.nix @@ -53,6 +53,7 @@ ./services/backup/sitecopy-backup.nix ./services/databases/mysql.nix ./services/databases/postgresql.nix + ./services/databases/openldap.nix ./services/games/ghost-one.nix ./services/hardware/acpid.nix ./services/hardware/bluetooth.nix diff --git a/modules/services/databases/openldap.nix b/modules/services/databases/openldap.nix new file mode 100644 index 00000000000..b4df790010b --- /dev/null +++ b/modules/services/databases/openldap.nix @@ -0,0 +1,58 @@ +{ config, pkgs, ... }: + +with pkgs.lib; + +let + + cfg = config.services.openldap; + openldap = pkgs.openldap; + + configFile = pkgs.writeText "slapd.conf" cfg.extraConfig; + +in + +{ + + ###### interface + + options = { + + services.openldap = { + + enable = mkOption { + default = false; + description = " + Whether to enable the ldap server. + "; + }; + + extraConfig = mkOption { + default = ""; + description = " + sldapd.conf configuration + "; + }; + }; + + }; + + + ###### implementation + + config = mkIf config.services.openldap.enable { + + environment.systemPackages = [ openldap ]; + + jobs.openldap = + { + description = "LDAP server"; + + startOn = "filesystem"; + daemonType = "fork"; + + exec = "${openldap}/libexec/slapd -f ${configFile}"; + }; + + }; + +}