vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / hardware / usb-modeswitch.nix
blobcbce5daa840d31297ad03cc3b0f71c14275b18a3
1 { config, lib, pkgs, ... }:
3   ###### interface
5   options = {
7     hardware.usb-modeswitch = {
8       enable = lib.mkOption {
9         type = lib.types.bool;
10         default = false;
11         description = ''
12           Enable this option to support certain USB WLAN and WWAN adapters.
14           These network adapters initial present themselves as Flash Drives containing their drivers.
15           This option enables automatic switching to the networking mode.
16         '';
17       };
18     };
19   };
21   ###### implementation
23   imports = [
24     (lib.mkRenamedOptionModule ["hardware" "usbWwan" ] ["hardware" "usb-modeswitch" ])
25   ];
27   config = lib.mkIf config.hardware.usb-modeswitch.enable {
28     # Attaches device specific handlers.
29     services.udev.packages = with pkgs; [ usb-modeswitch-data ];
31     # Triggered by udev, usb-modeswitch creates systemd services via a
32     # template unit in the usb-modeswitch package.
33     systemd.packages = with pkgs; [ usb-modeswitch ];
35     # The systemd service requires the usb-modeswitch-data. The
36     # usb-modeswitch package intends to discover this via the
37     # filesystem at /usr/share/usb_modeswitch, and merge it with user
38     # configuration in /etc/usb_modeswitch.d. Configuring the correct
39     # path in the package is difficult, as it would cause a cyclic
40     # dependency.
41     environment.etc."usb_modeswitch.d".source = "${pkgs.usb-modeswitch-data}/share/usb_modeswitch";
42   };