diff options
author | Chris Farmiloe <chrisfarms@gmail.com> | 2014-06-21 14:02:35 +0200 |
---|---|---|
committer | Chris Farmiloe <chrisfarms@gmail.com> | 2014-06-22 14:24:54 +0200 |
commit | d39684b69bb196de3e3440cc7fb0a749f6b7bc6c (patch) | |
tree | 9076e28d6af344ed7d59f3196f524fc56519b515 /nixos/modules/programs/freetds.nix | |
parent | 3ae765278f0e5d75e3d18ebac29c25780b92e9ee (diff) |
Simple nixos module to enable configuration of freetds and setup the expected environment variables
Diffstat (limited to 'nixos/modules/programs/freetds.nix')
-rw-r--r-- | nixos/modules/programs/freetds.nix | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/nixos/modules/programs/freetds.nix b/nixos/modules/programs/freetds.nix new file mode 100644 index 000000000000..398fd104363b --- /dev/null +++ b/nixos/modules/programs/freetds.nix @@ -0,0 +1,61 @@ +# Global configuration for freetds environment. + +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.environment.freetds; + +in +{ + ###### interface + + options = { + + environment.freetds = mkOption { + type = types.attrsOf types.str; + default = {}; + example = { + MYDATABASE = + '' + host = 10.0.2.100 + port = 1433 + tds version = 7.2 + ''; + }; + description = + '' + Configure freetds database entries. Each attribute denotes + a section within freetds.conf, and the value (a string) is the config + content for that section. When at least one entry is configured + the global environment variables FREETDSCONF, FREETDS and SYBASE + will be configured to allow the programs that use freetds to find the + library and config. + ''; + + }; + + }; + + ###### implementation + + config = mkIf (length (attrNames cfg) > 0) { + + environment.variables.FREETDSCONF = "/etc/freetds.conf"; + environment.variables.FREETDS = "/etc/freetds.conf"; + environment.variables.SYBASE = "${pkgs.freetds}"; + + environment.etc."freetds.conf" = { text = + (concatStrings (mapAttrsToList (name: value: + '' + [${name}] + ${value} + '' + ) cfg)); + }; + + }; + +} |