diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index f97a6b47512c..d5e23170c267 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1242,6 +1242,7 @@ ./services/networking/websockify.nix ./services/networking/wg-access-server.nix ./services/networking/wg-netmanager.nix + ./services/networking/wvdial.nix ./services/networking/webhook.nix ./services/networking/wg-quick.nix ./services/networking/wgautomesh.nix diff --git a/nixos/modules/services/networking/wvdial.nix b/nixos/modules/services/networking/wvdial.nix new file mode 100644 index 000000000000..8e06d64940d0 --- /dev/null +++ b/nixos/modules/services/networking/wvdial.nix @@ -0,0 +1,47 @@ +# Global configuration for wvdial. + +{ + config, + lib, + pkgs, + ... +}: + +let + cfg = config.environment.wvdial; +in +{ + options = { + environment.wvdial = { + dialerDefaults = lib.mkOption { + default = ""; + type = lib.types.str; + example = ''Init1 = AT+CGDCONT=1,"IP","internet.t-mobile"''; + description = '' + Contents of the "Dialer Defaults" section of + /etc/wvdial.conf. + ''; + }; + pppDefaults = lib.mkOption { + default = '' + noipdefault + usepeerdns + defaultroute + persist + noauth + ''; + type = lib.types.str; + description = "Default ppp settings for wvdial."; + }; + }; + }; + + config = lib.mkIf (cfg.dialerDefaults != "") { + environment.etc."wvdial.conf".source = pkgs.writeText "wvdial.conf" '' + [Dialer Defaults] + PPPD PATH = ${pkgs.ppp}/sbin/pppd + ${config.environment.wvdial.dialerDefaults} + ''; + environment.etc."ppp/peers/wvdial".source = pkgs.writeText "wvdial" cfg.pppDefaults; + }; +}