1# Tracker daemon.
2
3{ config, pkgs, lib, ... }:
4
5with lib;
6
7let
8 cfg = config.services.gnome.tracker;
9in
10{
11
12 meta = {
13 maintainers = teams.gnome.members;
14 };
15
16 imports = [
17 # Added 2021-05-07
18 (mkRenamedOptionModule
19 [ "services" "gnome3" "tracker" "enable" ]
20 [ "services" "gnome" "tracker" "enable" ]
21 )
22 ];
23
24 ###### interface
25
26 options = {
27
28 services.gnome.tracker = {
29
30 enable = mkOption {
31 type = types.bool;
32 default = false;
33 description = lib.mdDoc ''
34 Whether to enable Tracker services, a search engine,
35 search tool and metadata storage system.
36 '';
37 };
38
39 subcommandPackages = mkOption {
40 type = types.listOf types.package;
41 default = [ ];
42 internal = true;
43 description = lib.mdDoc ''
44 List of packages containing tracker3 subcommands.
45 '';
46 };
47
48 };
49
50 };
51
52
53 ###### implementation
54
55 config = mkIf cfg.enable {
56
57 environment.systemPackages = [ pkgs.tracker ];
58
59 services.dbus.packages = [ pkgs.tracker ];
60
61 systemd.packages = [ pkgs.tracker ];
62
63 environment.variables = {
64 TRACKER_CLI_SUBCOMMANDS_DIR =
65 let
66 subcommandPackagesTree = pkgs.symlinkJoin {
67 name = "tracker-with-subcommands-${pkgs.tracker.version}";
68 paths = [ pkgs.tracker ] ++ cfg.subcommandPackages;
69 };
70 in
71 "${subcommandPackagesTree}/libexec/tracker3";
72 };
73
74 };
75
76}