grafana-alloy: don't build the frontend twice
[NixPkgs.git] / nixos / modules / services / desktops / gnome / tracker.nix
blob45b679571c70778f4129b1a9f030919f8f1d43f9
1 # Tracker daemon.
3 { config, pkgs, lib, ... }:
5 let
6   cfg = config.services.gnome.tracker;
7 in
10   meta = {
11     maintainers = lib.teams.gnome.members;
12   };
14   ###### interface
16   options = {
18     services.gnome.tracker = {
20       enable = lib.mkOption {
21         type = lib.types.bool;
22         default = false;
23         description = ''
24           Whether to enable Tracker services, a search engine,
25           search tool and metadata storage system.
26         '';
27       };
29       subcommandPackages = lib.mkOption {
30         type = lib.types.listOf lib.types.package;
31         default = [ ];
32         internal = true;
33         description = ''
34           List of packages containing tracker3 subcommands.
35         '';
36       };
38     };
40   };
43   ###### implementation
45   config = lib.mkIf cfg.enable {
47     environment.systemPackages = [ pkgs.tracker ];
49     services.dbus.packages = [ pkgs.tracker ];
51     systemd.packages = [ pkgs.tracker ];
53     environment.variables = {
54       TRACKER_CLI_SUBCOMMANDS_DIR =
55         let
56           subcommandPackagesTree = pkgs.symlinkJoin {
57             name = "tracker-with-subcommands-${pkgs.tracker.version}";
58             paths = [ pkgs.tracker ] ++ cfg.subcommandPackages;
59           };
60         in
61         "${subcommandPackagesTree}/libexec/tracker3";
62     };
64   };