Migrate languagetool setup to nix module

Define new module which provides the systemd service.
Do not clutter home.nix and do not use custom systemd/ folder.
This commit is contained in:
Daniel Siepmann 2022-02-03 15:14:00 +01:00
parent a3087e4259
commit 77f3038cde
Signed by: Daniel Siepmann
GPG key ID: 33D6629915560EF4
4 changed files with 54 additions and 32 deletions

View file

@ -3,6 +3,7 @@
{
imports = [
./home/modules/programs/cmus.nix
./home/modules/programs/languagetool.nix
];
# Home Manager needs a bit of information about you and the
@ -44,9 +45,6 @@
pkgs.universal-ctags
pkgs.silver-searcher
# Writing
pkgs.languagetool
# Media
pkgs.vlc
];
@ -72,12 +70,5 @@
};
services.dunst = import ./home/services/dunst.nix;
systemd.user.services.languagetool = import ./home/systemd/languagetool.nix {
settings = {
port = "8081";
allow-origin = "*";
};
inherit pkgs;
};
services.languagetool.enable = true;
}

View file

@ -26,7 +26,6 @@ in {
package = mkOption {
type = types.package;
default = pkgs.cmus;
defaultText = literalExpression "pkgs.cmus";
description = "Cmus package to install.";
};
};

View file

@ -0,0 +1,52 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.languagetool;
in {
options.services.languagetool = {
enable = mkEnableOption "languagetool";
package = mkOption {
type = types.package;
default = pkgs.languagetool;
defaultText = literalExpression "pkgs.languagetool";
description = "languagetool package to install.";
};
port = mkOption {
type = types.port;
default = 8081;
description = "Port to listen to.";
};
allow-origin = mkOption {
type = types.str;
default = "*";
description = "allow-origin option, e.g. which domains to allow.";
};
};
config = mkIf cfg.enable {
systemd.user.services.languagetool = {
Unit = {
Description = "Languagetool Server";
StartLimitBurst = 3;
StartLimitInterval = 400;
};
Service = {
Restart = "on-failure";
RestartSec = "2s";
Environment = "JAVA_TOOL_OPTIONS=-Xmx256m";
ExecStart = "${cfg.package}/bin/languagetool-http-server --port ${toString cfg.port} --allow-origin '${cfg.allow-origin}'";
};
Install = {
WantedBy = ["default.target"];
};
};
};
}

View file

@ -1,20 +0,0 @@
{ pkgs, settings }:
{
Unit = {
Description = "Languagetool Server";
StartLimitBurst = 3;
StartLimitInterval = 400;
};
Service = {
Restart = "on-failure";
RestartSec = "2s";
Environment = "JAVA_TOOL_OPTIONS=-Xmx256m";
ExecStart = "${pkgs.languagetool}/bin/languagetool-http-server --port ${settings.port} --allow-origin ${settings.allow-origin}";
};
Install = {
WantedBy = ["default.target"];
};
}