Skip to content

Commit

Permalink
Simple nixos module to enable configuration of freetds and setup the …
Browse files Browse the repository at this point in the history
…expected environment variables
  • Loading branch information
chrisfarms committed Jun 22, 2014
1 parent 3ae7652 commit d39684b
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 @@ -58,6 +58,7 @@
./programs/ssmtp.nix
./programs/venus.nix
./programs/wvdial.nix
./programs/freetds.nix
./programs/zsh/zsh.nix
./programs/screen.nix
./rename.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 d39684b

Please sign in to comment.