diff options
author | Charles Strahan <charles.c.strahan@gmail.com> | 2015-08-21 16:18:09 -0400 |
---|---|---|
committer | Charles Strahan <charles.c.strahan@gmail.com> | 2015-08-22 14:05:35 -0400 |
commit | 648973d6419992c28322954ad0205cb05ef87997 (patch) | |
tree | d1fa2409226db81db431062cf7b49fa932e277b9 /nixos/modules/services/networking/fan.nix | |
parent | 1be2b63d2704e82c9f2188b070b62aa0a8c36404 (diff) | |
download | nixlib-648973d6419992c28322954ad0205cb05ef87997.tar nixlib-648973d6419992c28322954ad0205cb05ef87997.tar.gz nixlib-648973d6419992c28322954ad0205cb05ef87997.tar.bz2 nixlib-648973d6419992c28322954ad0205cb05ef87997.tar.lz nixlib-648973d6419992c28322954ad0205cb05ef87997.tar.xz nixlib-648973d6419992c28322954ad0205cb05ef87997.tar.zst nixlib-648973d6419992c28322954ad0205cb05ef87997.zip |
nixos: rename service 'ubuntu-fan' as 'fan'
Diffstat (limited to 'nixos/modules/services/networking/fan.nix')
-rw-r--r-- | nixos/modules/services/networking/fan.nix | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/nixos/modules/services/networking/fan.nix b/nixos/modules/services/networking/fan.nix new file mode 100644 index 000000000000..3170567e5b4a --- /dev/null +++ b/nixos/modules/services/networking/fan.nix @@ -0,0 +1,60 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.networking.fan; + modprobe = "${config.system.sbin.modprobe}/sbin/modprobe"; + +in + +{ + + ###### interface + + options = { + + networking.fan = { + + enable = mkEnableOption "FAN Networking"; + + }; + + }; + + + ###### implementation + + config = mkIf cfg.enable { + + environment.systemPackages = [ pkgs.fanctl ]; + + systemd.services.fan = { + description = "FAN Networking"; + wantedBy = [ "multi-user.target" ]; + after = [ "network-online.target" ]; + before = [ "docker.service" ]; + restartIfChanged = false; + preStart = '' + if [ ! -f /proc/sys/net/fan/version ]; then + ${modprobe} ipip + if [ ! -f /proc/sys/net/fan/version ]; then + echo "The Fan Networking patches have not been applied to this kernel!" 1>&2 + exit 1 + fi + fi + + mkdir -p /var/lib/fan-networking + ''; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + ExecStart = "${pkgs.fanctl}/bin/fanctl up -a"; + ExecStop = "${pkgs.fanctl}/bin/fanctl down -a"; + }; + }; + + }; + +} |