Skip to content

Commit

Permalink
Merge pull request #3047 from chrisfarms/freetds
Browse files Browse the repository at this point in the history
Simple nixos module to enable configuration of freetds
  • Loading branch information
7c6f434c committed Aug 28, 2014
2 parents 792afca + d39684b commit 0036f4d
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 0 deletions.
1 change: 1 addition & 0 deletions nixos/modules/module-list.nix
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
./programs/ssmtp.nix
./programs/venus.nix
./programs/wvdial.nix
./programs/freetds.nix
./programs/zsh/zsh.nix
./rename.nix
./security/apparmor.nix
Expand Down
61 changes: 61 additions & 0 deletions nixos/modules/programs/freetds.nix
Original file line number Diff line number Diff line change
@@ -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));
};

};

}

0 comments on commit 0036f4d

Please sign in to comment.