grafana-alloy: don't build the frontend twice
[NixPkgs.git] / nixos / modules / programs / freetds.nix
blob77daaa8fd398507dedc10e2f2b4bf9f6a003b119
1 # Global configuration for freetds environment.
3 { config, lib, pkgs, ... }:
5 let
7   cfg = config.environment.freetds;
9 in
11   ###### interface
13   options = {
15     environment.freetds = lib.mkOption {
16       type = lib.types.attrsOf lib.types.str;
17       default = {};
18       example = lib.literalExpression ''
19         { MYDATABASE = '''
20             host = 10.0.2.100
21             port = 1433
22             tds version = 7.2
23           ''';
24         }
25       '';
26       description = ''
27         Configure freetds database entries. Each attribute denotes
28         a section within freetds.conf, and the value (a string) is the config
29         content for that section. When at least one entry is configured
30         the global environment variables FREETDSCONF, FREETDS and SYBASE
31         will be configured to allow the programs that use freetds to find the
32         library and config.
33         '';
35     };
37   };
39   ###### implementation
41   config = lib.mkIf (builtins.length (builtins.attrNames cfg) > 0) {
43     environment.variables.FREETDSCONF = "/etc/freetds.conf";
44     environment.variables.FREETDS = "/etc/freetds.conf";
45     environment.variables.SYBASE = "${pkgs.freetds}";
47     environment.etc."freetds.conf" = { text =
48       (lib.concatStrings (lib.mapAttrsToList (name: value:
49         ''
50         [${name}]
51         ${value}
52         ''
53       ) cfg));
54     };
56   };