{ config, lib, pkgs, ... }: let geoposShare = pkgs.callPackage ./default.nix {}; cfg = config.services.geopos-share; nginxVhostOptions = (import { inherit config lib; }).options; in { options.services.geopos-share = { enable = lib.mkEnableOption "geopos-share"; virtualHost = lib.mkOption { type = lib.types.str; description = "Name of the nginx virtualhost to set up."; }; nginx = lib.mkOption { type = lib.types.submodule { options = lib.removeAttrs nginxVhostOptions ["root"]; }; default = {}; }; }; config = lib.mkIf cfg.enable { services.nginx = { enable = true; virtualHosts.${cfg.virtualHost} = lib.mkMerge [ cfg.nginx { root = "${geoposShare}"; } ]; }; }; }