vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / networking / create_ap.nix
blobcebea3c9059cc35db864676d112c5ad51c0a1edc
1 { config, lib, pkgs, ... }:
2 let
3   cfg = config.services.create_ap;
4   configFile = pkgs.writeText "create_ap.conf" (lib.generators.toKeyValue { } cfg.settings);
5 in {
6   options = {
7     services.create_ap = {
8       enable = lib.mkEnableOption "setting up wifi hotspots using create_ap";
9       settings = lib.mkOption {
10         type = with lib.types; attrsOf (oneOf [ int bool str ]);
11         default = {};
12         description = ''
13           Configuration for `create_ap`.
14           See [upstream example configuration](https://raw.githubusercontent.com/lakinduakash/linux-wifi-hotspot/master/src/scripts/create_ap.conf)
15           for supported values.
16         '';
17         example = {
18           INTERNET_IFACE = "eth0";
19           WIFI_IFACE = "wlan0";
20           SSID = "My Wifi Hotspot";
21           PASSPHRASE = "12345678";
22         };
23       };
24     };
25   };
27   config = lib.mkIf cfg.enable {
29     systemd = {
30       services.create_ap = {
31         wantedBy = [ "multi-user.target" ];
32         description = "Create AP Service";
33         after = [ "network.target" ];
34         restartTriggers = [ configFile ];
35         serviceConfig = {
36           ExecStart = "${pkgs.linux-wifi-hotspot}/bin/create_ap --config ${configFile}";
37           KillSignal = "SIGINT";
38           Restart = "on-failure";
39         };
40       };
41     };
43   };
45   meta.maintainers = with lib.maintainers; [ onny ];