summary refs log tree commit diff
path: root/modules/programs
diff options
context:
space:
mode:
authorPeter Simons <simons@cryp.to>2011-11-20 10:38:26 +0000
committerPeter Simons <simons@cryp.to>2011-11-20 10:38:26 +0000
commit9de905ee613d4b9c7fd8ee118939464b4d66f362 (patch)
treec04bb99c459f5528d7093956de55060e1590b62c /modules/programs
parentd89f4b6c7672465277f4bf239b6a09eb7f05b0c6 (diff)
downloadnixpkgs-9de905ee613d4b9c7fd8ee118939464b4d66f362.tar
nixpkgs-9de905ee613d4b9c7fd8ee118939464b4d66f362.tar.gz
nixpkgs-9de905ee613d4b9c7fd8ee118939464b4d66f362.tar.bz2
nixpkgs-9de905ee613d4b9c7fd8ee118939464b4d66f362.tar.lz
nixpkgs-9de905ee613d4b9c7fd8ee118939464b4d66f362.tar.xz
nixpkgs-9de905ee613d4b9c7fd8ee118939464b4d66f362.tar.zst
nixpkgs-9de905ee613d4b9c7fd8ee118939464b4d66f362.zip
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
Diffstat (limited to 'modules/programs')
-rw-r--r--modules/programs/wvdial.nix73
1 files changed, 73 insertions, 0 deletions
diff --git a/modules/programs/wvdial.nix b/modules/programs/wvdial.nix
new file mode 100644
index 00000000000..6d24efef531
--- /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
+          <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 ];
+
+    };
+
+  };
+
+}