1{ config, lib, ... }:
2
3let
4 inherit (lib)
5 concatStringsSep
6 mkOption
7 types
8 optionalString
9 ;
10
11in
12{
13
14 mkCellServDB =
15 cellName: db:
16 ''
17 >${cellName}
18 ''
19 + (concatStringsSep "\n" (
20 map (dbm: optionalString (dbm.ip != "" && dbm.dnsname != "") "${dbm.ip} #${dbm.dnsname}") db
21 ))
22 + "\n";
23
24 # CellServDB configuration type
25 cellServDBConfig = {
26 ip = mkOption {
27 type = types.str;
28 default = "";
29 example = "1.2.3.4";
30 description = "IP Address of a database server";
31 };
32 dnsname = mkOption {
33 type = types.str;
34 default = "";
35 example = "afs.example.org";
36 description = "DNS full-qualified domain name of a database server";
37 };
38 };
39
40 openafsMod = config.services.openafsClient.packages.module;
41 openafsBin = config.services.openafsClient.packages.programs;
42 openafsSrv = config.services.openafsServer.package;
43}