1{ config, lib, pkgs, ... }:
2
3with lib;
4
5let
6
7 cfg = config.services.bloop;
8
9in {
10
11 options.services.bloop = {
12 install = mkOption {
13 type = types.bool;
14 default = false;
15 description = ''
16 Whether to install a user service for the Bloop server.
17
18 The service must be manually started for each user with
19 "systemctl --user start bloop".
20 '';
21 };
22 };
23
24 config = mkIf (cfg.install) {
25 systemd.user.services.bloop = {
26 description = "Bloop Scala build server";
27
28 serviceConfig = {
29 Type = "simple";
30 ExecStart = ''${pkgs.bloop}/bin/blp-server'';
31 Restart = "always";
32 };
33 };
34
35 environment.systemPackages = [ pkgs.bloop ];
36 };
37}