nixpkgs-suyu/modules/programs/wvdial.nix
Peter Simons 9de905ee61 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
2011-11-20 10:38:26 +00:00

73 lines
1.3 KiB
Nix

# 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 ];
};
};
}