summaryrefslogtreecommitdiffstats
path: root/nixos/modules/config/iproute2.nix
diff options
context:
space:
mode:
authorMatthieu Coudron <mattator@gmail.com>2018-05-11 17:42:37 +0900
committerMatthieu Coudron <mattator@gmail.com>2018-05-15 21:55:04 +0900
commit1e0975f4c05959cf11b5a905f335c269dcaae630 (patch)
tree22dba45f4228d53c664d7b76cbad0c6f363cf9ee /nixos/modules/config/iproute2.nix
parent6db7f92cc2af827e8b8b181bf5ed828a1d0f141d (diff)
iproute2: module to create rt_table file & co
When doing source routing/multihoming, it's practical to give names to routing tables. The absence of the rt_table file in /etc make this impossible. This patch recreates these files on rebuild so that they can be modified by the user see NixOS#38638. iproute2 is modified to look into config.networking.iproute2.confDir instead of /etc/iproute2.
Diffstat (limited to 'nixos/modules/config/iproute2.nix')
-rw-r--r--nixos/modules/config/iproute2.nix23
1 files changed, 23 insertions, 0 deletions
diff --git a/nixos/modules/config/iproute2.nix b/nixos/modules/config/iproute2.nix
new file mode 100644
index 000000000000..881ad671a627
--- /dev/null
+++ b/nixos/modules/config/iproute2.nix
@@ -0,0 +1,23 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.networking.iproute2;
+ confDir = "/run/iproute2";
+in
+{
+ options.networking.iproute2.enable = mkEnableOption "copy IP route configuration files";
+
+ config = mkMerge [
+ ({ nixpkgs.config.iproute2.confDir = confDir; })
+
+ (mkIf cfg.enable {
+ system.activationScripts.iproute2 = ''
+ cp -R ${pkgs.iproute}/etc/iproute2 ${confDir}
+ chmod -R 664 ${confDir}
+ chmod +x ${confDir}
+ '';
+ })
+ ];
+}