Unverified Commit 760b2b55 authored by Martin Weinelt's avatar Martin Weinelt
Browse files

nixos/engelsystem: refactor option setup

parent fe0d323a
Loading
Loading
Loading
Loading
+38 −29
Original line number Diff line number Diff line
{ config, lib, pkgs, utils, ... }:
{
  config,
  lib,
  pkgs,
  utils,
  ...
}:

let
  inherit (lib) mkDefault mkEnableOption mkIf mkOption types mkPackageOption;
  inherit (lib)
    mkDefault
    mkEnableOption
    mkIf
    mkOption
    mkPackageOption
    mkRenamedOptionModule
    types
  ;

  cfg = config.services.engelsystem;
in {
  options = {
    services.engelsystem = {
      enable = mkOption {
        default = false;
        example = true;
        description = ''
          Whether to enable engelsystem, an online tool for coordinating volunteers
          and shifts on large events.
        '';
        type = lib.types.bool;
      };
  imports = [
    (mkRenamedOptionModule [ "services" "engelsystem" "config" ] [ "services" "engelsystem" "settings" ])
  ];

  options.services.engelsystem = {
    enable = mkEnableOption "engelsystem, an online tool for coordinating volunteers and shifts on large events";

    package = mkPackageOption pkgs "engelsystem" { };

    domain = mkOption {
      type = types.str;
@@ -22,8 +34,6 @@ in {
      description = "Domain to serve on.";
    };

      package = mkPackageOption pkgs "engelsystem" { };

    createDatabase = mkOption {
      type = types.bool;
      default = true;
@@ -32,9 +42,8 @@ in {
        This will override every database setting in {option}`services.engelsystem.config`.
      '';
    };
    };

    services.engelsystem.config = mkOption {
    settings = mkOption {
      type = types.attrs;
      default = {
        database = {
@@ -144,7 +153,7 @@ in {
      script =
        let
          genConfigScript = pkgs.writeScript "engelsystem-gen-config.sh"
            (utils.genJqSecretsReplacementSnippet cfg.config "config.json");
            (utils.genJqSecretsReplacementSnippet cfg.settings "config.json");
        in ''
          umask 077
          mkdir -p /var/lib/engelsystem/storage/app