summaryrefslogtreecommitdiffstats
path: root/bin/cacnixos-networking
diff options
context:
space:
mode:
Diffstat (limited to 'bin/cacnixos-networking')
-rwxr-xr-xbin/cacnixos-networking28
1 files changed, 28 insertions, 0 deletions
diff --git a/bin/cacnixos-networking b/bin/cacnixos-networking
new file mode 100755
index 0000000..4b246eb
--- /dev/null
+++ b/bin/cacnixos-networking
@@ -0,0 +1,28 @@
+#! /bin/sh
+# cacnixos-networking : cac-server x hostname -> nixos-module
+# TODO use label for hostname
+set -euf
+
+server=$1
+hostname=$2
+
+address=$(echo $server | jq -r .ip)
+gateway=$(echo $server | jq -r .gateway)
+nameserver=8.8.8.8
+netmask=$(echo $server | jq -r .netmask)
+prefix=$(netmask-to-prefix $netmask)
+
+printf '{...}:\n'
+printf '{\n'
+printf ' networking.hostName = "%s";\n' $hostname
+printf ' networking.interfaces.enp2s1.ip4 = [\n'
+printf ' {\n'
+printf ' address = "%s";\n' $address
+printf ' prefixLength = %d;\n' $prefix
+printf ' }\n'
+printf ' ];\n'
+printf ' networking.defaultGateway = "%s";\n' $gateway
+printf ' networking.nameservers = [\n'
+printf ' "%s"\n' $nameserver
+printf ' ];\n'
+printf '}\n'