forked from Fachschaft/nixConfig
49 lines
930 B
Nix
49 lines
930 B
Nix
|
{
|
||
|
lib,
|
||
|
config,
|
||
|
...
|
||
|
}: let
|
||
|
inherit
|
||
|
(lib)
|
||
|
mkOption
|
||
|
types
|
||
|
last
|
||
|
init
|
||
|
;
|
||
|
inherit
|
||
|
(lib.strings)
|
||
|
splitString
|
||
|
concatStringsSep
|
||
|
toInt
|
||
|
;
|
||
|
cfg = config.vmNetwork;
|
||
|
in {
|
||
|
imports = [];
|
||
|
|
||
|
options.vmNetwork = {
|
||
|
ipv4 = mkOption {
|
||
|
type = types.str;
|
||
|
description = "the ipv4 adress of this machine";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
config = {
|
||
|
networking = {
|
||
|
interfaces.enX0.ipv4.addresses = [
|
||
|
{
|
||
|
address = cfg.ipv4;
|
||
|
prefixLength = 16;
|
||
|
}
|
||
|
];
|
||
|
defaultGateway = let
|
||
|
addr = splitString "." cfg.ipv4;
|
||
|
addrInit = init addr;
|
||
|
addrLastInt = builtins.toString (toInt (last addr) + 127);
|
||
|
in
|
||
|
concatStringsSep "." (addrInit ++ [addrLastInt]);
|
||
|
# https://www.hrz.tu-darmstadt.de/services/it_services/nameserver_dns/index.de.jsp
|
||
|
nameservers = ["130.83.22.63" "130.83.22.60" "130.83.56.60"];
|
||
|
};
|
||
|
};
|
||
|
}
|