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}