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}