modules/programs/wvdial.nix: added support for configuring wvdial

For example, I use the following settings to configure T-Mobile Internet
access on my laptop, which is connected to the cell phone by USB:

 | environment.wvdial.dialerDefaults = ''
 |   Init1 = AT+CGDCONT=1,"IP","internet.t-mobile"
 |   Modem Type = USB Modem
 |   Phone = *99#
 |   ISDN = 0
 |   Username = tm
 |   Password = tm
 |   Modem = /dev/ttyACM0
 |   Baud = 460800
 | '';

svn path=/nixos/trunk/; revision=30489
This commit is contained in:
Peter Simons 2011-11-20 10:38:26 +00:00
parent d89f4b6c76
commit 9de905ee61
2 changed files with 74 additions and 0 deletions

View file

@ -38,6 +38,7 @@
./programs/shadow.nix
./programs/ssh.nix
./programs/ssmtp.nix
./programs/wvdial.nix
./rename.nix
./security/ca.nix
./security/consolekit.nix

View file

@ -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
<filename>/etc/wvdial.conf</filename>.
'';
};
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 ];
};
};
}