summaryrefslogtreecommitdiffstats
path: root/nixos/modules/services/network-filesystems/openafs/lib.nix
blob: e5e147a8dc33829ae79e8e75bf2114f2f7b54d67 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{ config, lib, ...}:

let
  inherit (lib) concatStringsSep mkOption types optionalString;

in {

  mkCellServDB = cellName: db: ''
    >${cellName}
  '' + (concatStringsSep "\n" (map (dbm: optionalString (dbm.ip != "" && dbm.dnsname != "") "${dbm.ip} #${dbm.dnsname}")
                                   db))
     + "\n";

  # CellServDB configuration type
  cellServDBConfig = {
    ip = mkOption {
      type = types.str;
      default = "";
      example = "1.2.3.4";
      description = lib.mdDoc "IP Address of a database server";
    };
    dnsname = mkOption {
      type = types.str;
      default = "";
      example = "afs.example.org";
      description = lib.mdDoc "DNS full-qualified domain name of a database server";
    };
  };

  openafsMod = config.services.openafsClient.packages.module;
  openafsBin = config.services.openafsClient.packages.programs;
  openafsSrv = config.services.openafsServer.package;
}