{ pkgs, lib, config, ... }: let configScriptPost = pkgs.writeShellApplication { text = '' echo "Patching config.exs" cd "$RUNTIME_DIRECTORY" cat >> config.exs << EOF # [===========================] # [ configScriptPost patches: ] # [===========================] config :pleroma, configurable_from_database: true EOF echo "Done patching!" ''; name = "akkoma-config-patch"; } + "/bin/akkoma-config-patch"; cfg = config.services.akkoma.patches; in with lib; { options.services.akkoma.patches = { configurableFromDatabase = mkOption { type = types.bool; default = false; }; }; config = mkIf cfg.configurableFromDatabase { systemd.services.akkoma-config.serviceConfig.ExecStart = mkAfter [ configScriptPost ]; systemd.services.akkoma-config.serviceConfig.ExecReload = mkAfter [ configScriptPost ]; }; }