diff --git a/modules/module-list.nix b/modules/module-list.nix index 96127dee79a2..17a65a004021 100644 --- a/modules/module-list.nix +++ b/modules/module-list.nix @@ -38,6 +38,7 @@ ./programs/shadow.nix ./programs/ssh.nix ./programs/ssmtp.nix + ./programs/wvdial.nix ./rename.nix ./security/ca.nix ./security/consolekit.nix diff --git a/modules/programs/wvdial.nix b/modules/programs/wvdial.nix new file mode 100644 index 000000000000..6d24efef5312 --- /dev/null +++ b/modules/programs/wvdial.nix @@ -0,0 +1,73 @@ +# Global configuration for wvdial. + +{ config, pkgs, ... }: + +with pkgs.lib; + +let + + configFile = '' + [Dialer Defaults] + PPPD PATH = ${pkgs.ppp}/sbin/pppd + ${config.environment.wvdial.dialerDefaults} + ''; + + cfg = config.environment.wvdial; + +in +{ + ###### interface + + options = { + + environment.wvdial = { + + dialerDefaults = mkOption { + default = ""; + type = types.string; + example = ''Init1 = AT+CGDCONT=1,"IP","internet.t-mobile"''; + description = '' + Contents of the "Dialer Defaults" section of + /etc/wvdial.conf. + ''; + }; + + pppDefaults = mkOption { + default = '' + noipdefault + usepeerdns + defaultroute + persist + noauth + ''; + type = types.string; + description = "Default ppp settings for wvdial."; + }; + + }; + + }; + + ###### implementation + + config = mkIf (cfg.dialerDefaults != "") { + + environment = { + + etc = + [ + { source = pkgs.writeText "wvdial.conf" configFile; + target = "wvdial.conf"; + } + { source = pkgs.writeText "wvdial" cfg.pppDefaults; + target = "ppp/peers/wvdial"; + } + ]; + + systemPackages = [ pkgs.wvdial ]; + + }; + + }; + +}